【发布时间】:2018-02-01 17:47:39
【问题描述】:
如何将列表列表转换为 DataFrame,其中列表的第一个“层”应该是行?
myList = list(
list(name="name1",num=20,dogs=list("dog1")),
list(name="name2",num=13,dogs = list()),
list(name="name3",num=5,dogs=list("dog2","dog4"))
)
我的第一个想法是取消列出“第三层”中的元素
myUnList = sapply(myList,function(x){y=x;y$dogs = unlist(y$dogs);y})
我可以创建一个小标题
tibble(myUnList)
# A tibble: 3 x 1
myUnList
<list>
1 <list [3]>
2 <list [2]>
3 <list [3]>
请注意,如果我有myList[[1]] 来表示name 的向量,那会很简单,但是我在如何整理以另一种方式呈现的数据时遇到了麻烦。我想使用purrr 来“反转”顺序。
预期结果:
# A tibble: 3 x 3
names num dogs
<list> <list> <list>
1 <chr [1]> <dbl [1]> <list [1]>
2 <chr [1]> <dbl [1]> <list [0]>
3 <chr [1]> <dbl [1]> <list [2]>
是否有其他类型的数据结构支持可变长度条目?
【问题讨论】: