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