获取共享相同日期的数据框元素的平均值

时间:2015-05-22 17:01:21

标签: r dataframe

我对如何采用以下方式格式化数据帧的平均值感到有点迷失:

id  date        quantity    product
1   12-05-2015  10          apple
2   21-03-2015  12          orange
3   12-05-2015  15          orange
4   21-03-2015  16          apple

预期结果:

date       quantity
21-03-2015 14
12-05-2015 12.5

我尝试将它转换为zoo对象,但后来我遇到问题,因为日期不是唯一的。

2 个答案:

答案 0 :(得分:5)

尝试

aggregate(quantity~date, df1, mean)
#        date quantity
#1 12-05-2015     12.5
#2 21-03-2015     14.0

或者

library(data.table)
setDT(df1)[, list(quantity=mean(quantity)), date]

正如评论中提到的@Alex A.在最近的data.table版本中,list(可以替换为.(

答案 1 :(得分:3)

您还可以使用dplyr包。假设您的数据框名为df

library(dplyr)

df %>%
    group_by(date) %>%
    summarize(quantity = mean(quantity))

#         date quantity
# 1 12-05-2015     12.5
# 2 21-03-2015     14.0

这是按日期分组的平均数量。