从矩阵中提取列名
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]]
而不是使用 which
和 max
分别生成 inds
然后使用 inds
索引到 p1
的名称,我通常会抓取which.max
返回的元素名称,用于查找命名向量中最大元素的名称:
names(which.max(p1))
# [1] "out"
我想在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]]
而不是使用 which
和 max
分别生成 inds
然后使用 inds
索引到 p1
的名称,我通常会抓取which.max
返回的元素名称,用于查找命名向量中最大元素的名称:
names(which.max(p1))
# [1] "out"