R 通过ddply确定哪个元素是最大的

R 通过ddply确定哪个元素是最大的,r,plyr,R,Plyr,我有一个包含ID变量、时间点和响应值的数据帧。我使用一些旧代码,使用ddply计算每个ID变量的最大平均值,即每组中响应最高的时间点: 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(

我有一个包含ID变量、时间点和响应值的数据帧。我使用一些旧代码,使用ddply计算每个ID变量的最大平均值,即每组中响应最高的时间点:

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))
i、 e.告诉我,对于a组,t2的平均值最高,而对于b组,t1的平均值最高


最简单的方法是什么?

我认为这可能会满足您的需求,但可能有更好的方法:

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

我认为这可能会给你想要的,但可能有更好的方法:

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

我认为这个答案根本不起作用。如果不是,请告诉我们。我认为这个答案根本不起作用。如果不是,请告诉我们。
ddply(meanY, .(grp), summarise, max=max(V1), where=t[which.max(V1)])