如何从 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
我下面有数组和 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