如何将字符串列表转换为数据框?

时间:2015-05-12 20:04:59

标签: r list dataframe

我想将字符串列表转换为数据框。 鉴于结构:

lst <- list(NULL, "PSYC", c("PSYC", "PHIL"), "PHIL")

我想生成

的数据框
      Index     major_cd
       1            NULL
       2            PSYC
       3            PSYC
       3            PHIL
       4            PHIL

注意列表中的第3项如何变成数据框的2行。

1 个答案:

答案 0 :(得分:6)

我们可以将'lst'中的NULL元素替换为'NA'或“NULL”,并在设置'lst'的名称后使用unnest中的tidyr

lst[sapply(lst, is.null)] <- NA

或者正如@David Arenburg在评论中提到的那样,设置为"NULL"而非NA将显示预期的输出

library(tidyr)
unnest(setNames(lst, seq_along(lst)), Index)
#  Index    x
#1     1 <NA>
#2     2 PSYC
#3     3 PSYC
#4     3 PHIL
#5     4 PHIL