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

lap*_*nio 4 r list dataframe

我想将字符串列表转换为数据框.给定结构:

lst <- list(NULL, "PSYC", c("PSYC", "PHIL"), "PHIL")
Run Code Online (Sandbox Code Playgroud)

我想生成一个数据帧

      Index     major_cd
       1            NULL
       2            PSYC
       3            PSYC
       3            PHIL
       4            PHIL
Run Code Online (Sandbox Code Playgroud)

请注意列表中的第3项如何变为数据框的2行.

akr*_*run 6

我们可以用'NA'或'NULL'替换'lst'中的NULL元素,并在设置'lst'的名称后使用unnestfromtidyr

lst[sapply(lst, is.null)] <- NA
Run Code Online (Sandbox Code Playgroud)

或者正如@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
Run Code Online (Sandbox Code Playgroud)