Мне нужно разделить вектор в разных столбцах каждый фактор R - PullRequest
0 голосов
/ 19 апреля 2020

Мои данные имеют разные коэффициенты длины, как это.

variable <- c("A,B,C","A,B","A,C","B,C")

Я использовал strsplit и другие подобные функции, но не могу решить свою проблему

Мне нужно получить фрейм данных, подобный этому

   A   B  C
1  A   B  C
2  A   B  NA
3  A   NA C
4  NA  B  C

Спасибо

Ответы [ 2 ]

0 голосов
/ 19 апреля 2020

Мы можем использовать rbindlist

library(data.table)
rbindlist(lapply(strsplit(variable, ","),
      function(x) setNames(as.list(x), x)), fill = TRUE)
0 голосов
/ 19 апреля 2020

Мы можем разделить данные на запятую, создать фрейм данных и назначить имена на основе имени переменной. Затем мы можем связать строки по именам столбцов, используя bind_rows из dplyr.

dplyr::bind_rows(sapply(strsplit(variable, ","), function(x) 
                setNames(as.data.frame(t(x)), x)))

#     A    B    C
#1    A    B    C
#2    A    B <NA>
#3    A <NA>    C
#4 <NA>    B    C
...