给定一个列表:
alist = list(
list(name="Foo",age=22),
list(name="Bar"),
list(name="Baz",age=NULL)
)
将其转换为具有名称和年龄列且缺少值的数据框的最佳方法是什么(我将按优先顺序接受 NA 或“”)?
使用失败的简单方法ldply
是因为它尝试将每个列表元素转换为数据框,但由于长度不匹配,所以使用 NULL barfs 的那个。我目前最好的是:
> ldply(alist,function(s){t(data.frame(unlist(s)))})
name age
1 Foo 22
2 Bar <NA>
3 Baz <NA>
但这很恶心,数字变量成为一个因素......