Как правильно рассчитать среднее по времени? - PullRequest
0 голосов
/ 04 мая 2018

Я работаю с набором данных о жилье и пытаюсь рассчитать среднюю цену на жилье по годам и месяцам.

Вот строка кода, которую я пытался использовать:

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 голосов
/ 04 мая 2018

Как насчет этого?

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)
...