【发布时间】:2015-05-08 15:43:54
【问题描述】:
场景:我有一个 df,多个用户尝试通过测试的“分数”。每个观察都是对用户 ID 和分数的尝试。有些用户可能会通过他们的第一次尝试,有些可能需要几次;他们得到无限的尝试。我想找到每个用户的平均分数。
例如:
userID = c(1:20, sample(1:20, 10, replace = TRUE))
score = c(rnorm(15, mean = 60, sd = 10), rnorm(8, mean = 70, sd = 5),
rnorm(7, mean = 90, sd = 2))
scores = data.frame(userID, score)
我需要一个最终结果数据框,它只是一个唯一用户 ID 列表以及他们所有尝试的平均值(无论他们尝试一次还是多次)。
在我尝试过的所有愚蠢方法中,我最近的是:
avgScores = aggregate(scores, by=list("userID"), "mean")
并收到以下错误消息:“参数必须具有相同的长度。” 我也尝试过排序和子设置(实际的数据框有时间戳),然后扭动我的鼻子,一起敲打我的鞋子,但是我什么地方都没有,这个菜鸟的大脑被炸了。
谢谢你
【问题讨论】: