R:如何在每一行中生成最高值的向量?

R: How to generate vectors of highest value in each row?

假设我的数据框包含

> DF
   V1   V2   V3  
1  0.3  0.4  0.7  
2  0.4  0.2  0.1  
3  0.2  0.8  0.3  
4  0.5  0.8  0.9   
5  0.2  0.7  0.8  
6  0.8  0.3  0.6  
7  0.1  0.5  0.4  

行将是不同类型的汽车, 列将是给定类别 V1、V2、V3 的概率。

我想生成一个向量,为每辆汽车分配其概率最高的类别。 例如,我希望汽车 1 与 V3 关联,汽车 2 与 V1 关联,汽车 3 与 V2 关联。

关于我应该如何解决这个问题的任何帮助或提示?

我们可以用max.col得到每一行中最大值对应的列索引

names(DF)[max.col(DF, "first")]
#[1] "V3" "V1" "V2" "V3" "V3" "V1" "V2"

另一个解决方案是:

names(DF)[apply(DF, 1, which.max)]
# [1] "V3" "V1" "V2" "V3" "V3" "V1" "V2"