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

时间:2016-05-15 08:40:27

标签: r dataframe topic-modeling

假设我的数据框包含

> 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相关联。

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

2 个答案:

答案 0 :(得分:4)

我们可以使用max.col来获取与每行中最大值对应的列索引。

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

答案 1 :(得分:2)

另一种解决方案是:

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