R中的3维数组名称

时间:2014-08-13 17:39:56

标签: arrays r names

在下面的3维数组中:

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

如何设置第三个维度名称?

2 个答案:

答案 0 :(得分:28)

您可以在定义数组时设置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")

答案 1 :(得分:3)

仍然从R开始,但是我发现这种方式对于大型多维数组可能有用。

您无需使用每个索引('a','b','c','d',...)的名称,而是可以使用ProvideDimnames()函数按照您所使用的模式自动生成索引名称选择。

创建数据

list_0 = [] #empty, I could add elements later.
list_1 = [] #empty
list_2 = [] #empty

标签尺寸

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'))