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



我是R语言的新手,现在被一个简单的问题所困扰。

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

在这种情况下,答案应该是:

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

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

您正在寻找这个:

> 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 表示数组的第三维

最新更新