Используйте столбец yearmonth из groupby для создания временных рядов R - PullRequest
0 голосов
/ 10 апреля 2020

df имел столбцы: yearmonth, store, item, sales.

group1: агрегированное значение df по хранилищу ключей, номеру года и месяцу и рассчитанное total_sales для каждого магазин, пункт и годовая комбинация.

Ожидаемый результат: Преобразовать этот вывод groupby во временные ряды, используя group1 yearmonth без каких-либо значений NAN в столбцах.

groupby первые 3 строки: Имя объекта groupby: group1

[IN]group1
[out]
 store  item yearmonth total_sales
   <int> <int> <chr>           <int>
 1     1     1 2013-01           328
 2     1     1 2013-02           322
 3     1     1 2013-03           477  and so on

#Converting yearmonth to datetime before converting group1 to time series
group1$yearmonth = as.Date(as.yearmon(as.character(group1$yearmonth),"%Y-%m"), frac = 0)

Попытка преобразовать вывод groupby во временные ряды:

      > as.ts(group1)
Time Series:Start = 1 End = 30000 Frequency = 1 
      store item yearmonth total_sales
    1     1    1        NA         328
    2     1    1        NA         322
    3     1    1        NA         531 and so on...

Как использовать groupby yearmonth в качестве ключа и создать объект временного ряда без получения этих значений NAN?

1 Ответ

1 голос
/ 10 апреля 2020

Мы можем удалить столбец yearmonth и добавить его в качестве индекса в объекте xts.

ts_group <- xts::xts(group1[setdiff(names(group1), 'yearmonth')],
                as.Date(paste0(group1$yearmonth, "-01")))

#           store item total_sales
#2013-01-01     1    1         328
#2013-02-01     1    1         322
#2013-03-01     1    1         477

Или используя библиотеку zoo.

library(zoo)
ts_group <- zoo(group1[setdiff(names(group1), 'yearmonth')], 
                       as.yearmon(group1$yearmonth))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...