数组中apply计算问题
在数组中,apply(x,c(1,2),mean)具体是怎么计算的?是对数组中1,2维矩阵相乘除第4维得到的吗?
在数组中,apply(x,c(1,2),mean)具体是怎么计算的?是对数组中1,2维矩阵相乘除第4维得到的吗?
2016-03-10
简单的例子:
l <- array(1:24,dim = c(2,3,4))
> l
, , 1
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
, , 2
[,1] [,2] [,3]
[1,] 7 9 11
[2,] 8 10 12
, , 3
[,1] [,2] [,3]
[1,] 13 15 17
[2,] 14 16 18
, , 4
[,1] [,2] [,3]
[1,] 19 21 23
[2,] 20 22 24
M <- apply(l,c(1,2),mean)
M
[,1] [,2] [,3]
[1,] 10 12 14
[2,] 11 13 15
其中c(1,2) 1代表行,2代表列, M计算方式就是 l的4组数据中 行和列 对应位置的平均值(M[1,1] =(1+7+13+19)/4=10),其他的数据 以此类推
apply(x,c(1,2),mean)
意思是:#1,2纬度上的数对3纬度来求平均。即1,2纬度的,,1中第一条记录,加上,,2第一条记录,加上,,3第一条记录加上,,4第一条记录求平均。
,,1 ,,2 ,,3 ,,4如下:
#Rstudio控制台的内容
> x <- array(rnorm(2*3*4),c(2,3,4))
> x
, , 1
[,1] [,2] [,3]
[1,] -1.042544 -1.041521 1.284045
[2,] -1.618926 -1.196427 2.036937
, , 2
[,1] [,2] [,3]
[1,] 0.8827615 0.2443569 0.4399112
[2,] -0.6728983 0.1800479 -0.2486564
, , 3
[,1] [,2] [,3]
[1,] 0.4385233 0.1771418 -0.514778
[2,] 0.7612346 -1.4176608 -1.193967
, , 4
[,1] [,2] [,3]
[1,] 1.4522751 0.7872514 -0.3324009
[2,] 0.7958228 1.0489825 -0.5487616
举报