如何从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,第二个元素必须命名为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

最新更新