如何让which.max返回行名而不是​​索引号

时间:2014-04-21 18:06:24

标签: r apply

运行相关后,我需要识别每列中最大值的行。我正在使用which.max,但我无法获取行名称。相反,我得到一个毫无价值的索引号。每行都有一个名称。

apply(my.data,2,which.max)

2 个答案:

答案 0 :(得分:7)

# create example data
set.seed(1)
df <- data.frame(col1=runif(100), col2=runif(100))
row.names(df) <- paste0("row", 1:100)

# get max
rownames(df[apply(df, 2, which.max), ])
# [1] "row18" "row4" 

答案 1 :(得分:1)

运行相关性的结果应该是matrix,所以这是一个使用矩阵的示例。

> M <- matrix(c(1,5,3,17,6,8,9,2,3,10,8,4), 4, 3)
> rownames(M) <- letters[1:4]
> M
##   [,1] [,2] [,3]
## a    1    6    3
## b    5    8   10
## c    3    9    8
## d   17    2    4
> rownames(M)[apply(M, 2, which.max)]
## [1] "d" "c" "b"
相关问题