配列を操作する

array

行列を多次元に拡張したものを配列という。

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

dim

配列の次元を確認する。

x <- array(1:27, dim = c(3, 3, 3))
dim(x)
## [1] 3 3 3
attributes(x)
## $dim
## [1] 3 3 3

dimnames

配列(行列も)行列にラベルが付けることができる。

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

aperm

配列を転置する。

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

library(abind)

多次元配列の結合

#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
最終更新日:2016/04/27

copyrigth © 2016 r-beginners.com All rigths reserved.

PAGE TOP ▲