首页 > 解决方案 > 在R中的数据框中识别具有最高数值的列

问题描述

我有一个包含大量列的数据框。每个都是数字。

对于每一行数据,我想知道哪一列的数字最高。

非常简单的例子:

x <- data.frame(score1 = c(10, 12, 25),
                score2 = c(9, 13, 20),
                score3 = c(14, 8, 8))

对于第 1 行, score3 最高。

对于第 2 行, score2 最高。

对于第 3 行, score1 最高。

所以我想要输出的东西:

max_score_col_name <- c("score3", "score2", "score1")

请问有没有简单的方法可以做到这一点?

(我忽略了一个棘手的问题,即如果领先者出现平局会发生什么,因为数据的形式不会发生这种情况)

标签: rdataframe

解决方案


一种选择可能是:

names(x)[max.col(x)]

[1] "score3" "score2" "score1"

推荐阅读