4

dfd、、、cを持つデータフレームが与えられますv。レコードのサブセットの中からdの最大値のの値を見つけるにはどうすればよいですか?vc == "foo"

私はこれを試しました:

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

しかし、私は得ました:

character(0)
4

2 に答える 2

9

Yoは次のように行うことができます:

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 に答える