Angenommen, ich habe einen Datenrahmen wie den folgenden und möchte den höchsten Wert in jeder Zeile verwenden und den zugehörigen Spaltennamen in einen neuen Vektor einfügen (nicht der Wert selbst), wie könnte ich darüber gehen?Ziehen des Spaltennamens mit zugehörigem Wert und Hinzufügen nur des Spaltennamens zu einem neuen Vektor
df <- data.frame(matrix(rnorm(50, 20), 5))
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
1 18.49755 18.98823 18.53194 18.86478 20.74333 18.04460 21.08717 21.75072 18.05813 19.08402
2 20.44626 20.07205 19.36755 17.14943 18.58396 20.76463 20.23776 18.90171 18.99182 20.51338
3 20.27142 18.74448 21.42953 20.13568 20.40065 22.26788 19.30967 20.51772 19.20067 19.75371
4 20.61600 21.27852 18.54137 20.84269 20.27767 20.70583 21.33051 20.03136 20.60405 21.24672
5 19.64165 21.20197 20.06732 19.59529 20.48761 19.83571 19.80155 21.02669 20.77574 21.21862
Ich habe
versuchtresults <- apply(df, 1, max)
, die mir den höchsten Wert gibt, aber ich bin mehr daran interessiert, in den Spaltennamen mit dem höchsten Wert zugeordnet zu dem Ergebnis Vektor hinzugefügt wird, nicht der Wert selbst.
Also, statt eines Vektors der 5 höchsten Werte für Zeile, würde ich einen Vektor der Spaltennamen haben, dass „gewonnen“ wie
result <- c("X1", "X3", "X2", "X1", "X9")
Danke.
Dies ist 'Namen (df) [max.col (df)]' ... und ein Duplikat. –