2012-04-19 10 views
1

ID変数、タイムポイント、および応答値を含むデータフレームがあります。私は、各IDの変数の最大の平均値を計算するためにddply使用して、いくつかの古いコードを使用しています(つまり、各グループ内で最も高い応答を持つ時点):ddplyを通じてどの要素が最大であるかを調べる

grp <- rep(c("a", "b"), each=6) 
t <- rep(1:2, each=3, len=12) 
y <- rnorm(length(t)) 
df <- data.frame(grp=factor(grp), t=t, y=y) 
meanY <- ddply(df, .(grp, t), function(x) mean(x$y)) 
maxMeanY <- ddply(meanY, .(grp), function(x) max(x$V1)) 

私は今、私も好きであろうと決定しました。グループAのために、t2は最高の平均を持っていましたが、グループBのために、t1は最高の平均を持っていたことを私に言って、

maxTimes 
> grp t V1 
1 a 2 0.0534 
2 b 1 0.6015 

すなわち:値はそれぞれ最大平均値となった時点知っています

これを取得する最も簡単な方法は何ですか?

答えて

3

私はこれが何をしたいあなたを与えるかもしれないと思うが、よりよい方法があるかもしれません。私は答えは結局働くことはないと思う

maxMeanY <- ddply(meanY, .(grp), function(x)c(max(x$V1), x[which.max(x$V1), 2])) 
+0

。そうでない場合はお知らせください。 –

4
ddply(meanY, .(grp), summarise, max=max(V1), where=t[which.max(V1)]) 
関連する問題