我的表格格式符合
user data
1234 42
1234 51
1234 50
1235 61
1235 55
我想根据用户创建平均“数据”的直方图。换句话说,我想将表格的行与相同的userID
组合在一起,并得出它们的平均值。我如何在大型数据集上执行此操作?
答案 0 :(得分:5)
只需使用tapply
(假设您的原始数据框名为dat
):
avgdata=tapply(dat$data,dat$user,FUN=mean)
hist(avgdata)
答案 1 :(得分:1)
user_mean = tapply(data, user, mean)
hist(user_mean, breaks = 30)
答案 2 :(得分:1)
首先,让我们重现您的数据:
user <- c(rep("1234", 3), rep("1235", 2))
data <- c(42, 51, 50, 61, 55)
df <- data.frame(user, data)
现在,对于单行解决方案:
aggregate(data ~ user, df, mean)