减少R中的表格

时间:2011-10-13 15:30:34

标签: r

我的表格格式符合

user  data
1234  42
1234  51
1234  50
1235  61
1235  55

我想根据用户创建平均“数据”的直方图。换句话说,我想将表格的行与相同的userID组合在一起,并得出它们的平均值。我如何在大型数据集上执行此操作?

3 个答案:

答案 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)