R:分组最小或最大

moa*_*t21 2 r greatest-n-per-group

有很多关于如何使用SQL获得分组最小或最大的帖子.但是你如何在R中做到这一点?

比方说,您有以下数据框

ID | t | value
a | 1 | 3
a | 2 | 5
a | 3 | 2
a | 4 | 1
a | 5 | 5
b | 2 | 2
b | 3 | 1
b | 4 | 5
Run Code Online (Sandbox Code Playgroud)

对于每个ID,我不想要min t,而是min t处的值.

ID | value
a | 3
b| 2
Run Code Online (Sandbox Code Playgroud)

The*_*Man 5

df 是你的data.frame -

library(data.table)

setDT(df) # convert to data.table in place

df[, value[which.min(t)], by = ID]
Run Code Online (Sandbox Code Playgroud)

输出 -

> df[, value[which.min(t)], by = ID]
   ID V1
1:  a  3
2:  b  2
Run Code Online (Sandbox Code Playgroud)