2016-05-15 11 views
2

Lassen Sie sich sagen, dass mein DatenrahmenR: Wie generiert man Vektoren mit dem höchsten Wert in jeder Zeile?

enthält
> 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 

die Zeilen, die verschiedenen Typen von Kraftfahrzeugen sein würde, und die Säulen würden die Wahrscheinlichkeiten für eine bestimmte Kategorie von V1, V2, V3 sein.

Ich möchte einen Vektor generieren, der jedem Automobil die Kategorie zuweist, in der es die höchste Wahrscheinlichkeit hat. Zum Beispiel möchte ich Automobil 1 mit V3 assoziiert werden, Automobil 2 mit V1 assoziiert werden, Automobil 3 mit V2 assoziiert werden.

Irgendwelche Hilfen oder Hinweise, wie ich das angehen sollte?

Antwort

4

Wir können max.col verwenden, um den Spaltenindex zu erhalten, der dem größten Wert in jeder Zeile entspricht.

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

Dank! Das war schnell und einfach – Elizabeth

2

Eine andere Lösung ist:

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