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

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

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.

You Might Also Like