Как извлечь строку с минимальными или максимальными значениями?

может быть простой вопрос, но я не могу найти хороший способ его решения. С df, подобным этому:

        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

если я хочу знать, где максимальное значение имеет тип I:

which.max(df$Temp)

и R вывести индекс строки, например 665.

Итак, если я хочу прочитать и извлечь столбец со всеми связанными значениями, я должен ввести:

df[665,]

Нет ли более простого способа узнать, какой идентификатор связан с максимальным значением определенного столбца df?

Ответ 1

Вы можете включить ваш вызов which.max в качестве первого аргумента для вашего поднабора вызова:

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

Ответ 2

Вы также можете использовать функцию subset и max для вызова строки:

df[df$Temp == max(df$Temp),]