行列を多次元に拡張したものを配列という。
x <- array(1:27, c(3, 3, 3))
x
## , , 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
# 配列にアクセスする
x[3,3,]
## [1] 9 18 27
# 3番目配列の3行、3列を指定
x[1,3,3]
## [1] 25
配列の次元を確認する。
x <- array(1:27, dim = c(3, 3, 3))
dim(x)
## [1] 3 3 3
attributes(x)
## $dim
## [1] 3 3 3
配列(行列も)行列にラベルが付けることができる。
x <- array(1:9, dim = c(3, 3, 3))
dimnames(x) <- list(NULL, c("A","B","C"), c("a","b","c"))
x
## , , a
##
## A B C
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9
##
## , , b
##
## A B C
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9
##
## , , c
##
## A B C
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9
配列を転置する。
x <- array(1:12, c(2,3))
x
## [,1] [,2] [,3]
## [1,] 1 3 5
## [2,] 2 4 6
t <- aperm(x, perm = c(2,1))
t
## [,1] [,2]
## [1,] 1 2
## [2,] 3 4
## [3,] 5 6
多次元配列の結合
#install.packages("abind")
library(abind)
x <- array(1:12, dim = c(3, 4))
y <- array(1:12, dim = c(3, 4))
z <- array(1:12, dim = c(3, 4))
x
## [,1] [,2] [,3] [,4]
## [1,] 1 4 7 10
## [2,] 2 5 8 11
## [3,] 3 6 9 12
w <- abind(x, y, z, along = 3)
w
## , , 1
##
## [,1] [,2] [,3] [,4]
## [1,] 1 4 7 10
## [2,] 2 5 8 11
## [3,] 3 6 9 12
##
## , , 2
##
## [,1] [,2] [,3] [,4]
## [1,] 1 4 7 10
## [2,] 2 5 8 11
## [3,] 3 6 9 12
##
## , , 3
##
## [,1] [,2] [,3] [,4]
## [1,] 1 4 7 10
## [2,] 2 5 8 11
## [3,] 3 6 9 12
dim(w)
## [1] 3 4 3
copyrigth © 2016 r-beginners.com All rigths reserved.
PAGE TOP ▲