Дан кадр данных, в котором каждое наблюдение в столбце представляет собой строку вида «x ~ y», где x и y — целые числа.
Цель состоит в том, чтобы преобразовать строку «x~y» в вектор c(x..y), представляющий собой последовательность чисел, начинающуюся с целого числа x и заканчивающуюся целым числом y.
Наконец, фрейм данных должен быть невложенным, чтобы каждый элемент вектора получил свою собственную строку, а другие столбцы правильно повторялись.
Например, вот фрейм данных:
A B
A1 -1~1
A2 1~3
A3 2~4
Приведенный выше фрейм данных следует изменить на следующее:
A B
A1 -1
A1 0
A1 1
A2 1
A2 2
A2 3
A3 2
A3 3
A3 4
Невозможно установить примеры str_replace, так как случаев много.. Как мне сделать этот код??
dff <- separate_rows(df, B, sep="~"); do.call(bind_rows, lapply(split(dff, dff$A), function(x) { data.frame(A=head(x$A,1), B=seq(min(x$B), max(x$B))) }))
должен сделать с этим. - person Abdou   schedule 22.12.2017