找到每个名称的最小值并返回相应的行

时间:2014-05-14 09:15:09

标签: r

我的数据框看起来像

name val Info
a 1.1 'Info_a1.1'
a 0.1 'Info_a0.1'
b 0.2 'Info_b0.2'
a 0.3  ...
b 0.4
c 0.4
c 0.5

我想找到每个名字的最小值,并返回行(唯一的一个是enought)看起来像

name val Info
a 0.1 'Info_a0.1'
b 0.2 'Info_b0.2'
c 0.4 'Info_c0.4'
...

我该怎么做。

1 个答案:

答案 0 :(得分:2)

data.table解决方案

library(data.table)
setDT(dat)[, list(val = min(val), Info = Info[which.min(val)]), by = name] # dat is your data set

##   name val      Info
##1:    a 0.1 Info_a0.1
##2:    b 0.2 Info_b0.2
##3:    c 0.4 Info_c0.4