【问题标题】:3 Dimensional Array Names in RR中的3维数组名称
【发布时间】:2014-08-13 17:39:55
【问题描述】:

在下面的 3 维数组中:

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

如何设置第三维名称?

【问题讨论】:

  • 如果您查看文档,array 有一个 dimnames 参数。此外,还有一个更通用的dimnames() 函数。

标签: arrays r 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 开始,但我发现这种方式可能对大型多维数组有用。

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

    创建数据

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-12
      • 2015-08-29
      • 1970-01-01
      • 2016-07-01
      • 2016-03-13
      • 2013-12-08
      • 2020-03-27
      • 2012-11-28
      相关资源
      最近更新 更多