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