3 Dimensional Array Names in R

3 Dimensional Array Names in R

In the 3 Dimensional array bellow :

ar <- array(someData, c(5, 5, 5));  
rownames(ar) <- ...;  #to set up row names
colnames(ar) <- ...;  #to set up col names

How can i set the third dimension names ?

1

2 Answers

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_2
row     1     5     9
row_1   2     6    10
row_2   3     7    11
row_3   4     8    12

, , lev_1

      col col_1 col_2
row    13    17    21
row_1  14    18    22
row_2  15    19    23
row_3  16    20    24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

James H. Sterling
Author

James H. Sterling

James Sterling reports on renewable energy developments, climate policy, ecological conservation, and green tech innovations around the globe.