【发布时间】:2020-12-22 18:09:21
【问题描述】:
我从第三方获得嵌套列表,其中偶尔缺少字段(因为有些是可选的)。我需要将所有数据存储在一个数据框中。
因此我需要找到一种优雅的方式来强制每个嵌套列表的格式,以便我可以在单个数据框中取消列出所有内容。
让我们看看这个列表:
my.list <- list(list(col1=1, col2=2, col3=3),
list(col1=1, col2=2),
list(col2=2, col1=1),
list(col1=1, col2=2, col3=3, col4=4))
我希望每个嵌套列表都具有相同顺序的相同列列表(col1 到 col4)
到目前为止,我的代码真的很不优雅,根本没有矢量化,我相信它可以很好地矢量化。
for (i in (1:length(my.list))) {
all.fields <- unique(names(unlist(my.list))) # all possible fields
loc.fields <- names(my.list[[i]]) # fields of the current list
miss.fields <- setdiff(all.fields, loc.fields) # missing fields to add with NA
my.list[[i]][miss.fields] <- NA}
我尝试了 purr 函数,但我无法做一些有效的事情。任何线索或提示? 谢谢!
【问题讨论】: