在数据帧的子集中查找列的最大值

时间:2012-04-19 15:31:04

标签: r

给定数据框df,其中列dcv。如何在d的记录的子集中找到v的最大值c == "foo"

我试过了:

df[df$v==max(df$v) & df$c == "foo","d"]

但我得到了:

character(0)

2 个答案:

答案 0 :(得分:9)

哟可以这样做:

with(df, d[v== max(v[c=="foo"])])

EDITED: 如果您想为d的所有级别获取c的值:

library(plyr)
ddply(df, "c", subset, v==max(v))

答案 1 :(得分:1)

虽然曼努埃尔的答案大部分时间都有效,但我相信会有更正确的版本:

with(df, d[v== max(v[c=="foo"]) & c=="foo"])

否则,可以匹配v==max但实际上不是c=="foo"的子集的行。