我刚刚开始做一些R脚本,我无法弄清楚这个问题.
我得到了一个矢量列表
myListOfVector <- list(
c(1,2),
c(1,2),
c(1,2),
c(1,2)
)
Run Code Online (Sandbox Code Playgroud)
我想要的是我的列表中每个向量的每个X元素的总和基于元素的位置,这样如果我有3个包含(a,b,c)的向量,我将获得每个向量的总和,每个b和列表或向量中的每个c
我知道每个向量都是相同的长度
我寻求的就是那样的东西
result <- sum(myListOfVector)
# result must be c(4, 8)
Run Code Online (Sandbox Code Playgroud)
有人有想法吗?
我能够做到的唯一方法是使用一个循环但是我花了很多时间才能做到这一点.
我尝试了一些申请和lapply,但他们似乎没有像我想要的那样工作,因为我拥有的只是一次一个向量.
精度:矢量列表由我无法修改的函数返回我需要一个有效的解决方案
Fra*_*ank 11
相同长度的向量列表可以与Reduce以下内容相加:
Reduce(`+`, myListOfVector)
Run Code Online (Sandbox Code Playgroud)
如@AnandaMahto和@JanLuba所述,将它放入matrix并使用colSums或者rowSums在某些情况下可能更快; 我不确定.
旁注.OP中的例子不是list; 相反,它应该被构造成
myListOfVector <- list( # ... changing c to list on this line
c(1,2),
c(1,2),
c(1,2),
c(1,2)
)
Run Code Online (Sandbox Code Playgroud)