我想将字符串列表转换为数据框.给定结构:
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行.
我们可以用'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)