6.13 多维数组
多维数组的行列是怎么定义的 ?array 轴的概念,画个图表示数组
array(1:27, c(3, 3, 3))## , , 1
## 
##      [,1] [,2] [,3]
## [1,]    1    4    7
## [2,]    2    5    8
## [3,]    3    6    9
## 
## , , 2
## 
##      [,1] [,2] [,3]
## [1,]   10   13   16
## [2,]   11   14   17
## [3,]   12   15   18
## 
## , , 3
## 
##      [,1] [,2] [,3]
## [1,]   19   22   25
## [2,]   20   23   26
## [3,]   21   24   27
垂直于Z轴的平面去截三维立方体,3 代表 z 轴,得到三个截面(二维矩阵)
asplit(array(1:27, c(3, 3, 3)), 3)## [[1]]
##      [,1] [,2] [,3]
## [1,]    1    4    7
## [2,]    2    5    8
## [3,]    3    6    9
## 
## [[2]]
##      [,1] [,2] [,3]
## [1,]   10   13   16
## [2,]   11   14   17
## [3,]   12   15   18
## 
## [[3]]
##      [,1] [,2] [,3]
## [1,]   19   22   25
## [2,]   20   23   26
## [3,]   21   24   27
对每个二维矩阵按列求和
lapply(asplit(array(1:27, c(3, 3, 3)), 3), apply, 2, sum)## [[1]]
## [1]  6 15 24
## 
## [[2]]
## [1] 33 42 51
## 
## [[3]]
## [1] 60 69 78
asplit 和 lapply 组合处理多维数组的计算问题
三维数组的矩阵运算 abind 包提供更多的数组操作,如合并,替换
数组操作 aperm 数组转置 Array Transposition
asplit 数组拆分 其后接 lapply 或者 vapply
apply 数组计算