列表列表中的R求和向量

标签 r

我有一个包含矢量的列表列表。它可以用

生成
test <- lapply(1:10, function(x){
    list(a=sample(1:5,5),b=sample(1:5,5),c=sample(1:10,5))
})

我现在有 10 个包含 a、b 和 c 的列表列表。我想将所有 a、b 和 c 加在一起,所以我最终得到一个包含 a、b 和 c 的列表。我如何有效地做到这一点?我的真实数据要大得多,我希望加快速度。我想要看起来像这样的东西。请注意此处的数字不正确。

最佳答案

我们可以通过 +transpose listreduce

library(purrr)
library(dplyr)
transpose(test) %>% 
      map(reduce, `+`)
#$a
#[1] 35 19 30 33 33

#$b
#[1] 30 27 29 35 29

#$c
#[1] 46 53 59 67 62

注意:没有 set.seed。因此,结果可能会有所不同

关于列表列表中的R求和向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60081500/

相关文章:

r - 如何在 R 中对数据表进行子集化、分组和计算 j

r - 是否有解决 R 2.15.2 中 do.call(cbind.xts,...) 性能缓慢的解决方法?

r - 矩阵变换的快速方法?

r - 在 R 中设置种子

r - 将一列与另一个包含多个条目的 df 中的另一列进行比较

安装新版本的 R 后恢复所有 R 包?

Rstudio 在保存脚本时调用 source()

r - 将向量添加到数据框的列

r - 如何在使用 R 保持原始行顺序的同时按行提取唯一记录和双记录?

r - 将函数应用于 R 中的列表矩阵