我对r中的多维数组做的不多,所以这可能是一个简单的问题 - 我试图找到一种简单的方法来查找多维数组中单个项目的维度名称:
my.array <- array(32:56, dim=c(3,4,2))
dimnames(my.array)=list(c("a","b","c"), c("1","2", "3", "4"),c("y","n"))
which(my.array==33)
>2
我知道这个数组中的第二项与此条件匹配,但我怎样才能轻松找出与该项相关的暗淡标签(即my.array [“b”,“1”,“y”) ] = 33)?
答案 0 :(得分:3)
我认为您正在寻找arr.ind
:
X1 <- which(my.array==33, arr.ind=TRUE)
X1
# dim1 dim2 dim3
# b 2 1 1
my.array[X1]
# [1] 33
my.array[2, 1, 1]
# [1] 33
mapply("[", dimnames(my.array), X1)
# [1] "b" "1" "y"