3 Dimensional Array Names in R 3 Dimensional Array Names in R arrays arrays

3 Dimensional Array Names in R


You can either set the dimnames argument when defining the array:

ar <- array(data     = 1:27,            dim      = c(3, 3, 3),            dimnames = list(c("a", "b", "c"),                            c("d", "e", "f"),                            c("g", "h", "i")))

and/or you can set the dimnames of the third dimension like so:

dimnames(ar)[[3]] <- c("G", "H", "I")


Still starting in R but I found this way that may be useful for large multidimensional array.

Instead of naming each of the indexes ('a','b','c','d',....), you can use provideDimnames() function to automatic generate the index names following the pattern you choose.

Creating data

ar <- array (data = 1:(4*3*2) , dim=c(4,3,2))> ar, , 1     [,1] [,2] [,3][1,]    1    5    9[2,]    2    6   10[3,]    3    7   11[4,]    4    8   12, , 2     [,1] [,2] [,3][1,]   13   17   21[2,]   14   18   22[3,]   15   19   23[4,]   16   20   24

Labelling dimensions

ar <- provideDimnames(ar , sep = "_", base = list('row','col','lev'))

And you get

> ar, , lev      col col_1 col_2row     1     5     9row_1   2     6    10row_2   3     7    11row_3   4     8    12, , lev_1      col col_1 col_2row    13    17    21row_1  14    18    22row_2  15    19    23row_3  16    20    24