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

How to convert a list of strings to data frame?

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

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

我想生成一个数据框

      Index     major_cd
       1            NULL
       2            PSYC
       3            PSYC
       3            PHIL
       4            PHIL

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

我们可以用 'NA' 或 "NULL" 替换 'lst' 中的 NULL 元素,并在设置 tidyr 的名称后使用 unnest =21=]

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