aperm
aperm()
matrix은 2 dimensional array로 array의 특별한 케이스다.
array를 정의할때 dimnames을 정하면, aperm()을 이해하기 쉽다.
myarray <- array( 1:24, dim=c(2,3,4), dimnames=list(rr=c('a','b'), cc=c('A','B','C'), dd=c("가","나","다","라")) ) myarray myarray[,,1] %>% class # [1] "matrix" myarray[,,"가"] %>% class # same aperm(myarray, c(3,1,2))
> myarray , , dd = 가 cc rr A B C a 1 3 5 b 2 4 6 , , dd = 나 cc rr A B C a 7 9 11 b 8 10 12 , , dd = 다 cc rr A B C a 13 15 17 b 14 16 18 , , dd = 라 cc rr A B C a 19 21 23 b 20 22 24
> aperm(myarray, c(3,1,2)) , , cc = A rr dd a b 가 1 2 나 7 8 다 13 14 라 19 20 , , cc = B rr dd a b 가 3 4 나 9 10 다 15 16 라 21 22 , , cc = C rr dd a b 가 5 6 나 11 12 다 17 18 라 23 24
myarray[1,3,4] myarray[rr=1,cc=3,dd=4] #same aperm(myarray, c(3,1,2))[dd=4, rr=1, cc=3] #same # [1] 23