繁体   English   中英

从矩阵中提取列名

[英]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 时,它返回 NULL 而不是“out”

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

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

在您的情况下, p1是一个向量,因此您可以使用names而不是colnames 这应该有效:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM