Rog*_*ger 3 arrays r matrix mean
我希望获得数组中每个元素的平均值。在一个简单的例子中,假设我们有这个简单的数组:
, , 1
[,1] [,2] [,3]
[1,] 2.000000000 3.000000000 1.000000000
[2,] 6.000000000 5.000000000 2.000000000
[3,] 8.000000000 12.00000000 4.000000000
[4,] 12.00000000 10.00000000 4.000000000
, , 2
[,1] [,2] [,3]
[1,] 4.000000000 6.000000000 2.000000000
[2,] 4.000000000 10.00000000 3.000000000
[3,] 8.000000000 12.00000000 4.000000000
[4,] 8.000000000 20.00000000 6.000000000
, , 3
[,1] [,2] [,3]
[1,] 6.000000000 9.000000000 3.000000000
[2,] 2.000000000 15.00000000 4.000000000
[3,] 12.00000000 18.00000000 6.000000000
[4,] 4.000000000 30.00000000 8.000000000
Run Code Online (Sandbox Code Playgroud)
我想找到数组中所有表(?)中每一行 i、列 i 的平均值。在上面的情况下,正确的结果将是这个矩阵(抱歉,我不太擅长编数字):
[,1] [,2] [,3]
[1,] 4.000000000 6.000000000 2.000000000
[2,] 6.000000000 10.00000000 3.000000000
[3,] 8.000000000 12.00000000 4.000000000
[4,] 12.00000000 20.00000000 6.000000000
Run Code Online (Sandbox Code Playgroud)
我可以“手工”进行算术:(my.array[,,1]+my.array[,,2]+my.array[,,3])/3这给出了一个矩阵,其中包含每个元素的平均值。然而,我的数据有很多NA值,像这样的函数mean()应该允许我使用na.rm=TRUE参数来处理这些缺失的值。
显然,您可以对mean(my.array[i,i,]所有表中的每个元素进行平均,但是有没有一种简单的方法可以一次计算所有元素并生成一个矩阵?我认为apply()这是一个不错的选择,但我还没有找到合适的表达方式。
您正在寻找这个:
apply(data, 1:2, mean)
Run Code Online (Sandbox Code Playgroud)