2016-12-06 7 views
-2

Ich habe folgende Daten Reihe:wie Spaltennamen zuzuordnen Minimalwert

df 
    dc1 dc2 dc3 min_colname 
[1,] 12.9 13.4 13.4 
[2,] 6.1 6.5 6.5 
[3,] 6.3 6.7 6.7 
[4,] 21.0 21.4 21.4 
[5,] 1.6 1.8 1.8 
[6,] 3.3 3.7 3.7 
[7,] 7.0 7.4 7.4 
[8,] 3.2 3.6 3.6 
[9,] 14.8 15.2 15.2 
[10,] 7.9 8.3 8.3 

ich eine Spalte hinzufügen versuche min_colname mehr sagen, welche die Minimalwerte jeder Zeile haben, aber auf Spaltennamen zugeordnet. ... zum Beispiel für Zeile 1 min Wert ist 12.9 ..so das erste Element in min_colname dc1 sein sollte und nicht der tatsächliche Wert obs .....

+1

'colnames (df) [max.col (-df," first ")]' - ziemlich sicher, dass dies ein Duplikat ist – thelatemail

+1

Mögliches Duplikat von [für jede Zeile, gib den Spaltennamen des größten Wertes zurück] (http: // stackoverflow.com/questions/17735859/for-each-row-return-the-column-name-of-the-largest-value) Oder [R gebe den Index der minimalen Spalte für jede Zeile zurück] (http: // stackoverflow .com/questions/18324053/r-Return-the-Index-der-Minimum-Spalte-für-jede-Zeile) –

+0

Sie können die Antworten in diesen Links ein wenig zwicken, um Ihre gewünschte Ausgabe zu bekommen. –

Antwort

0

Diese Arbeit sollte:

df$min_colname <- apply(df, 1, function(x) colnames(df)[which.min(x)]) 
Verwandte Themen