Проблемы с группировкой данных по дате

#r #time-series

#r #временные ряды

Вопрос:

Пытаюсь сгруппировать мои данные по месяцам и годам, но продолжаю получать это сообщение об ошибке:

Ошибка в объекте[[name, exact = TRUE]]: объект типа ‘closure’ не поддается подстановке

Это мой код:

 passflow %>%
  group_by(txdate=floor_date(date,"month"))%>%
  summarize(flows=sum(flows))
  

Это мой набор данных:

  weekday     txdate flows month year
1       1 2012-01-02 24317     1 2012
2       2 2012-01-03 20116     1 2012
3       3 2012-01-04 11344     1 2012
4       4 2012-01-05 11621     1 2012
5       5 2012-01-06 18203     1 2012
6       6 2012-01-07 20430     1 2012
  

Комментарии:

1. Не называйте переменную в group_by . Так и сделайте group_by(txdate) , или group_by(floor_date(txdate,"month") . Кроме того, в вашем наборе данных, похоже, нет date переменной.

Ответ №1:

Извлеките год и месяц в вашем group_by с format помощью . Преимущество этого заключается в том, что он дает больше контроля над форматированием в выходном df (если вы этого хотите).

 passflow %>%
  group_by(year = format(passflow$txdate, "%Y"), # group by year
           month = format(passflow$txdate, "%B")) %>% # group by month
  summarize(flows = sum(flows))

# A tibble: 2 x 3
# Groups:   year [1]
  year  month    flows
  <chr> <chr>    <int>
1 2012  February 38633
2 2012  January  67398
  

(Я переместил некоторые данные в февраль для проверки)

Как указал divibisan, у вас ошибка в вашем OP:

 passflow %>%
  group_by(txdate=floor_date(txdate,"month"))%>%
  summarize(flows=sum(flows))