如何正确计算平均值?

时间:2018-05-04 07:36:00

标签: r lubridate

我正在处理房屋数据集,我正在尝试按年和月计算平均房价。

以下是我尝试使用的代码行:

housing_data[,list(avg=mean(housing_data$price)), by = list(date(as.POSIXct(housing_data$date, format = "%Y-%m-%d")))]

然而,这是我的输出:

           date      avg
  1: 2004-04-11 612622.2
  2: 2005-07-17 612622.2
  3: 2003-06-01 612622.2
  4: 2004-01-18 612622.2
  5: 2006-01-29 612622.2
 ---                    
159: 2004-03-07 612622.2
160: 2005-08-14 612622.2
161: 2006-03-12 612622.2
162: 2005-10-23 612622.2
163: 2006-04-16 612622.2

我不明白我是如何错误地计算平均值的。此外,如何从数据中删除天数并仅从年/月计算平均值。

1 个答案:

答案 0 :(得分:0)

这个怎么样?

library(dplyr)

df %>%
  group_by(month_year = format(date_col, "%Y-%m")) %>%
  summarise(value_avg = mean(value))

输出为:

  month_year value_avg
1 2018-05         14.5
2 2018-06         43.5
3 2018-07         59.5

示例数据:

df <- data.frame(date_col=seq.Date(as.Date("2018/5/4"), by="day", length.out = 60),
                 value = 1:60)