将向量列表的列表转换为R中的数据帧

我有一个数字向量列表列表.我想要

>对每个向量求和
>将每个内部标量列表转换为向量
>将矢量组合成一个数据帧,其中矢量是行

我把以下内容混在一起,但似乎这非常笨拙而不是R方式.我怀疑,如果我使用rapply和四个步骤,我做错了(不是在结果方面,而是在效率和理解方面).有没有正确的方法来做这个操作?

dat1 <- list(list(1:2, 3:4), list(5:6, 7:8))
dat2 <- rapply(dat1, sum, how="list") 
dat3 <- lapply(dat2, unlist)
dat4 <- do.call(rbind, dat3)
dat5 <- data.frame(dat4)

所以期望的输出是

> dat5
  X1 X2
1  3  7
2 11 15
> class(dat5)
[1] "data.frame"
最佳答案
好吧,我不确定它是否更有效,但这里有类似的东西:

as.data.frame(matrix(rapply(dat1,sum), nrow=length(dat1), byrow=TRUE))
X1 X2
1  3  7
2 11 15

转载注明原文:将向量列表的列表转换为R中的数据帧 - 代码日志