3 Имена размерных массивов в R

В 3-мерном массиве ниже:

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

Как установить третьи имена измерений?

Ответ 1

Вы можете задать аргумент dimnames при определении массива:

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

и/или вы можете установить dimnames третьего измерения следующим образом:

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

Ответ 2

Все еще начиная с R, но я нашел этот способ, который может быть полезен для большого многомерного массива.

Вместо того, чтобы называть каждый из индексов ("a", "b", "c", "d",....), вы можете использовать функцию provideDimnames() для автоматической генерации имен индексов по выбранному вами шаблону.

Создание данных

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

Размеры маркировки

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

И вы получаете

> 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