1
我有以下类型的AA数据帧:扩展/扩大与各列表的列数据帧分成行
df <- data.frame("col1" = c(1,2,3,4))
df$col2 <- list(list(1,1,1),list(2,2,2),list(3,3,3),list(4,4,4))
df$col3 <- list(c(1,1,1),c(2,2,2),c(3,3,3),c(4,4,4))
df
而获得:
col1 col2 col3
1 1 1, 1, 1 1, 1, 1
2 2 2, 2, 2 2, 2, 2
3 3 3, 3, 3 3, 3, 3
4 4 4, 4, 4 4, 4, 4
现在我想操纵这个数据帧得到像这样的东西:
col1 col3
1 1 1
1 1
1 1
2 2 2
2 2
2 2
3 3 3
3 3
3 3
...
现在我可以用一个简单的循环做到这一点。对于每一行我将列表转换为数据框。然后,我使用rbind
将数据帧附加到单个数据帧中。
我的问题是:我该如何做矢量化函数?
我试过apply
,sapply
,mapply
和Reduce
但没有成功。 apply
是唯一实际执行但产生不正确结果(只有每个列表的第一个元素)。
我们可以试着'LST < - lapply(DF [-1],不公开)'然后使用'data.frame(lst)' – akrun
我建议避免创建一个data.frame列表列以开始。 – Roland
@akrun你的建议似乎有效。想要添加该答案作为答案,以便我可以将其标记为正确?谢谢。 – user2051561