jmpamao 发表于 2013-1-5 17:47 
apply(),我用的不熟,不是很理解数据怎么运算的, 特别是 apply 处理 array时,
array:
a:
最简单的方法就是弄一个3维的array,然后画个三维立体图,看看里面的数字是怎么排列的。
> a <- array(1:24, c(2,3,4))
> a
, , 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
你可以画一个三维的2x3x4的长方体,然后把这些数字填进去看看是怎么放的。然后array(a, 1, mean)就很清楚了。记住一点,array得到的结果总是和apply所在的方向上的维数是相同的。
> apply(a, 1, mean) #因为1方向上长度是2
[1] 12 13
> apply(a, c(1, 2), mean) # 因为1和2方向上的长度分别是2和3
[,1] [,2] [,3]
[1,] 10 12 14
[2,] 11 13 15