【问题标题】:Naming dimensions of a existing array in R [duplicate]R中现有数组的命名维度[重复]
【发布时间】:2013-03-31 01:38:15
【问题描述】:

我有一个现有的数组,我想命名这个数组的维度。我不能使用array()dimnames= 参数,因为我需要用不同的函数制作这个数组。我需要用类似于 names(my.array)<-my.names 的名称重命名尺寸。

感谢您的帮助(如果您还不知道,我是新手)

【问题讨论】:

    标签: r multidimensional-array naming


    【解决方案1】:

    使用dimnames(x) <- list(d1names, d2names, ...),其中d1namesd2names 等是长度与您的维度长度匹配的字符向量。

    如果您的数组是二维的(矩阵),您可以改用rownames(x) <- d1namescolnames(x) <- d2names

    例子:

    > A <- outer(outer(1:3,1:4),1:2)
    > A
    , , 1
    
         [,1] [,2] [,3] [,4]
    [1,]    1    2    3    4
    [2,]    2    4    6    8
    [3,]    3    6    9   12
    
    , , 2
    
         [,1] [,2] [,3] [,4]
    [1,]    2    4    6    8
    [2,]    4    8   12   16
    [3,]    6   12   18   24
    
    > dimnames(A)
    NULL
    > dimnames(A) <- list(LETTERS[1:3],LETTERS[1:4],LETTERS[1:2])
    > A
    , , A
    
      A B C  D
    A 1 2 3  4
    B 2 4 6  8
    C 3 6 9 12
    
    , , B
    
      A  B  C  D
    A 2  4  6  8
    B 4  8 12 16
    C 6 12 18 24
    

    矩阵示例:

    > B <- matrix(1:12,3,4)
    > B
         [,1] [,2] [,3] [,4]
    [1,]    1    4    7   10
    [2,]    2    5    8   11
    [3,]    3    6    9   12
    > rownames(B) <- letters[1:3]
    > B
      [,1] [,2] [,3] [,4]
    a    1    4    7   10
    b    2    5    8   11
    c    3    6    9   12
    > colnames(B) <- LETTERS[1:4]
    > B
      A B C  D
    a 1 4 7 10
    b 2 5 8 11
    c 3 6 9 12
    

    【讨论】:

    • 对于 3-D 数组,如何在保留原始 dim2 的同时重命名 dim1 和 dim3?
    • @RNA dimnames(A)[[1]] &lt;- xxxdimnames(A)[[3]] &lt;- yyy
    【解决方案2】:

    你仍然可以使用dimnames&lt;- 例如:

    someArray <- array(1:30, dim=c(2, 3, 5))
    
    dimnames(someArray) <- list(c("Hello", "World"), LETTERS[6:8], letters[1:5])
    
    someArray
    
      # , , a
    
      #       F G H
      # Hello 1 3 5
      # World 2 4 6
    
      # , , b
    
      #       F  G  H
      # Hello 7  9 11
      # World 8 10 12
    
      # , , c
    
      #        F  G  H
      # Hello 13 15 17
      # World 14 16 18
    
      # , , d
    
      #        F  G  H
      # Hello 19 21 23
      # World 20 22 24
    
      # , , e
    
      #        F  G  H
      # Hello 25 27 29
      # World 26 28 30
    

    【讨论】:

      猜你喜欢
      • 2020-10-29
      • 2014-03-12
      • 2022-01-03
      • 2014-03-23
      • 2015-08-29
      • 2021-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多