我有一个包含 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))
我现在决定我还想知道每个最大平均值对应的时间值:
maxTimes
> grp t V1
1 a 2 0.0534
2 b 1 0.6015
即,告诉我对于 a 组,t2 的平均值最高,但对于 b 组,t1 的平均值最高。
得到这个最简单的方法是什么?