如何从 R 中数据帧的列中给出数组元素名称

how to give array elements names from a column of a dataframe in R

我下面有数组和 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]
   

 }

这是我正在尝试做的,但没有用。我怎样才能做到这一点?

在原始数据集中,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