4

给定一个包含, ,df列的数据框。如何在where的记录子集中找到 的最大值?dcvdvc == "foo"

我试过这个:

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

但我得到了:

character(0)
4

2 回答 2

9

哟可以这样做:

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

编辑:如果你想获得d所有级别的值c

library(plyr)
ddply(df, "c", subset, v==max(v))
于 2012-04-19T15:37:56.470 回答
1

虽然曼努埃尔的答案在大多数情况下都有效,但我相信更正确的版本是:

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

否则,可以匹配具有v==max但实际上不是c=="foo".

于 2016-01-26T17:50:19.267 回答