可能重复:
对矩阵列表求和将
元素列表逐个元素添加在一起
我有一个R列表对象.列表的每个元素包含3乘3矩阵.我想在元素方面总结所有矩阵.那是:
myList <- list();
myList[[1]] <- matrix(1:9,3,3)
myList[[2]] <- matrix((1:9)*10,3,3)
Run Code Online (Sandbox Code Playgroud)
然后我想要最终的输出输出
myList[[1]]+myList[[2]]
[,1] [,2] [,3]
[1,] 11 44 77
[2,] 22 55 88
[3,] 33 66 99
Run Code Online (Sandbox Code Playgroud)
当然我可以为这个计算写一个循环但是R中的循环非常慢.R有内置功能吗?
GSe*_*See 19
见?Reduce.
从示例:
## A general-purpose adder:
add <- function(x) Reduce("+", x)
Run Code Online (Sandbox Code Playgroud)
然后你可以
add(myList)
Run Code Online (Sandbox Code Playgroud)
或者,您可以将数据放在多维数组而不是列表中,然后使用apply它.
require(abind)
m = abind(matrix(1:9,3,3), matrix((1:9)*10,3,3), along = 3)
Run Code Online (Sandbox Code Playgroud)
产生三维数组.然后使用apply:
apply(m, 1:2, sum)
Run Code Online (Sandbox Code Playgroud)
免责声明:我没有测试此代码,因为我现在没有R可用.但是,我确实希望您了解此选项.
| 归档时间: |
|
| 查看次数: |
10292 次 |
| 最近记录: |