从矩阵中提取列名

extract column names from matrix

我想在matrix.My代码中提取最大值的列名如下:

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 时 return NULL 而不是“out”

在您的例子中,p1 是一个向量,因此您可以使用 names 而不是 colnames。这应该有效:

cnames = names(p1)[inds[1]]

而不是使用 whichmax 分别生成 inds 然后使用 inds 索引到 p1 的名称,我通常会抓取which.max 返回的元素名称,用于查找命名向量中最大元素的名称:

names(which.max(p1))
# [1] "out"