【问题标题】:how to give array elements names from a column of a dataframe in R如何从R中的数据框的列中给出数组元素名称
【发布时间】:2021-10-18 17:41:44
【问题描述】:

下面有数组和df:

my.df <-  data.frame(cbind(c("a1","a2","a3","a4","a5","a6","a7","a8","a9","a10"), c(1:10)))
arr <- array(0, dim = c(2,3,10))

我希望数组中的每个元素都从我的 df 的相应行中获取其名称。 例如,数组的第一个元素必须命名为 a1,senod 必须命名为 a2,依此类推。

    for( i in q:nrow(my.df)){
dimnames(arr[,,i])[[3]] <- my.df[i,1]
   

 }

这是我正在尝试做的,但它不起作用。我怎样才能做到这一点?

【问题讨论】:

    标签: r arrays matrix names


    【解决方案1】:

    在原始数据集中,dimnames 属性为NULL。因此,我们可以使用list 创建一个维度名称,将第一个和第二个维度名称指定为NULL,并从“my.df”的第一列中指定第三个维度名称

    dimnames(arr) <- list(NULL, NULL, my.df[[1]])
    

    -输出

    > arr
    , , a1
    
         [,1] [,2] [,3]
    [1,]    0    0    0
    [2,]    0    0    0
    
    , , a2
    
         [,1] [,2] [,3]
    [1,]    0    0    0
    [2,]    0    0    0
    
    , , a3
    
         [,1] [,2] [,3]
    [1,]    0    0    0
    [2,]    0    0    0
    
    , , a4
    
         [,1] [,2] [,3]
    [1,]    0    0    0
    [2,]    0    0    0
    
    , , a5
    
         [,1] [,2] [,3]
    [1,]    0    0    0
    [2,]    0    0    0
    
    , , a6
    
         [,1] [,2] [,3]
    [1,]    0    0    0
    [2,]    0    0    0
    
    , , a7
    
         [,1] [,2] [,3]
    [1,]    0    0    0
    [2,]    0    0    0
    
    , , a8
    
         [,1] [,2] [,3]
    [1,]    0    0    0
    [2,]    0    0    0
    
    , , a9
    
         [,1] [,2] [,3]
    [1,]    0    0    0
    [2,]    0    0    0
    
    , , a10
    
         [,1] [,2] [,3]
    [1,]    0    0    0
    [2,]    0    0    0
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-12
      • 2021-08-27
      • 2018-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多