У меня есть dataframe, который выглядит следующим образом:Split колонки на несколько столбцов адаптивно в R
Name Value
abc Asia
def Asia/Africa
gbc Africa
jhg America/Africa/Asia
Я хочу столбец Value быть разделены таким образом, что dataframe выглядит следующим образом:
Name Value.1 Value.2 Value.3
abc Asia
def Asia Africa
gbc Africa
jhg America Africa Asia
Я знаю, что есть похожие вопросы о stackoverflow (например, here, here), но они предполагают, что Значение можно разделить на одно и то же количество разделов для каждой строки. Так что, когда я пытаюсь запустить следующие команды:
out <- strsplit(as.character(df$Value),'/')
do.call(rbind, out)
data.frame(df$Value, do.call(rbind, out))
Он работает до второй линии, а затем дает мне следующую ошибку:
Error in data.frame(df$Value, do.call(rbind, :
arguments imply differing number of rows: 24819, 24707
In addition: Warning message:
In (function (..., deparse.level = 1) :
number of columns of result is not a multiple of vector length (arg 10)
Я также посмотрел в reshape2 функции colSplit и tidyr функцию separate , Они также ожидают, что для каждой строки Значение может быть разделено на точно такое же количество компонентов, поэтому они ожидают, что я буду называть столбцы заранее.
мне интересно, там есть способ адаптивно имя разделить значение на отдельные столбцы называются значения.1, Value.2 ...
Ваш вопрос лучше, так как вы включили пример, но я предполагаю, что это один и охватывает его: http://stackoverflow.com/q/26898833/1191259 – Frank