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