如何将函数应用于R中数组垂直(第3)方向的每个向量?

时间:2013-11-17 16:21:58

标签: r

我是R语言的新手,现在仍然遇到一个简单的问题。

说我有一个数组:A <- array(1:12, c(2, 2, 3))。我想使用“apply”来计算垂直(第三)维度中4个向量中每个向量中元素的平均值。 (即结果将是2乘2矩阵)

本案的答案应该是:

      [,1] [,2]
[1,]    5    7
[2,]    6    8

我只想出使用2 for循环来计算4次平均值的想法。但是由于我的数组非常大,我想知道是否有一种简单的方法可以使用“apply”来实现这个目标?

1 个答案:

答案 0 :(得分:2)

您正在寻找:

> apply(A, c(1,2), mean)
     [,1] [,2]
[1,]    5    7
[2,]    6    8

修改

如果您想获得3个矩阵中每个矩阵的每个列的均值,请尝试:

> apply(A, 2:3, mean)
     [,1] [,2] [,3]
[1,]  1.5  5.5  9.5
[2,]  3.5  7.5 11.5

请注意,apply中的索引是1表示行(数组的第一个维度),2表示列(数组的第二个维度),3表示数组的第三个维度< / p>