【发布时间】:2018-07-02 08:03:01
【问题描述】:
我有一个嵌套列表,其中一些元素为空列表(提取):
str(myList)
List of 100
$ :'data.frame': 2 obs. of 10 variables:
..$ _index : chr [1:2] "alias_fr" "alias_fr"
..$ _type : chr [1:2] "triplet" "triplet"
..$ _id : chr [1:2] "Q9327" "Q3122270"
$ : list()
$ :'data.frame': 1 obs. of 9 variables:
..$ _index : chr "alias_fr"
..$ _type : chr "triplet"
..$ _id : chr "Q17009"
我需要使用 bind_rows 索引每个元素:
df <- bind_rows(myList, .id = "id")
不幸的是,空元素(示例中的第二个)被删除,结果是索引错误(索引移位):
id _index _type _id
1 1 alias_fr triplet Q9327
2 1 alias_fr triplet Q3122270
3 2 alias_fr triplet Q17009
我的期望:
id _index _type _id
1 1 alias_fr triplet Q9327
2 1 alias_fr triplet Q3122270
3 2 NA NA NA
3 3 alias_fr triplet Q17009
我已经尝试了几种方法都没有成功:
Convert R list to dataframe with missing/NULL elements ...
有没有办法让 bind_rows 考虑空元素?
【问题讨论】:
-
你真的需要那些 NA 行吗?如果您只需要正确的 ID 号,则应使用命名列表。在这种情况下,空列表元素会被删除,但会保留正确的 ID。
-
是的,我需要这些行来进行将来的连接(每个 id 对应于语料库中的给定句子)。我没有任何其他元素可以使加入生效...