我想在矩阵中提取最大值的列名。我的代码如下:
p<-array(0,c(2,2,2))
colnames(p)=c("within","out")
rownames(p)=c("within","out")
p[,,1]<-matrix(c(.2, 0.8,.7,.3), 2, 2, byrow=TRUE)
p[,,2]<-matrix(c(.6, 0.4,.9,.1), 2, 2, byrow=TRUE)
p1<-p[1,,1]
inds=which(p1==max(p1),arr.ind=TRUE)
cnames = colnames(p1)[inds[1]]
当我调用cnames时,它返回NULL而不是“out”
答案 0 :(得分:3)
不是使用inds
和which
分别生成max
,而是使用inds
索引p1
的名称,我通常会抓住名称which.max
返回的元素,用于查找命名向量中最大元素的名称:
names(which.max(p1))
# [1] "out"
答案 1 :(得分:1)
在您的情况下,p1
是一个向量,因此您可以使用names
代替colnames
。这应该有效:
cnames = names(p1)[inds[1]]