2013-10-18 9 views
14

vielleicht eine einfache Frage, aber ich kann nicht eine gute Methode, um es zu lösen. Mit einem df wie diese:Wie extrahiere ich die Zeile mit Min- oder Max-Werten?

 ID Year Temp ph 
1  P1 1996 11.3 6.80 
2  P1 1996 9.7  6.90 
3  P1 1997 9.8  7.10 
... 
2000 P2 1997 10.5 6.90 
2001 P2 1997 9.9  7.00 
2002 P2 1997 10.0 6.93 

wenn ich wissen will, wo der Maximalwert ist I-Typ:

which.max(df$Temp) 

und R den Index der Zeile, zum Beispiel drucken 665.

Also, wenn ich die Spalte mit allen damit verbundenen Werte zu lesen und zu extrahieren, muss ich eingeben:

df[665,] 

Gibt es keinen einfacheren Weg zu wissen, welche ID mit dem Maximalwert einer bestimmten Spalte des df zusammenhängt?

+1

'df [which.max (df $ Temp),]'? Oder fragst du etwas komplizierter? –

+0

Ahrrhrh .. Ich habe mit vielen Methoden versucht, aber ich dachte nicht, dass es so einfach sein könnte. Vielen Dank!! – matteo

+5

Betrachte auch 'subset (df, Temp == max (Temp))', was alle Zeilen gibt, deren 'Temp' das Maximum ist (während' which.max' Lösungen eine solche Zeile ergeben). –

Antwort

29

Sie können Ihren which.max Ruf als erstes Argument zu Ihrem subsetting Aufruf enthalten:

df[which.max(df$Temp),] 
Verwandte Themen