2016-05-15 49 views
2

比方說,我的數據幀包含R:如何在每一行中生成最高值的向量?

> 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相關聯。

任何艾滋病或提示我應該如何解決這個問題?

回答

4

我們可以使用max.col來獲取對應於每行最大值的列索引。

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

謝謝!這是一個快速和容易 – Elizabeth

2

另一種解決方案是:

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