Как преобразовать датафрейм во временные ряды? - PullRequest
0 голосов
/ 05 июня 2019

Извините, я знаю, что этот вопрос задавался много раз, но у меня возникают проблемы с преобразованием моего информационного кадра во временные ряды.

это мой информационный кадр (после удаления некоторых столбцов):

  head(New_DF):

       ï..date   qty
    1 2017-07-05  61
    2 2018-01-20  73
    3 2017-07-10 145
    4 2017-07-01 255
    5 2017-05-23 267
    6 2017-06-24 242 

И вот что я сделал:

    library(zoo)

    as.ts(read.zoo(New_Df, FUN = as.yearmon))

И я получаю эту ошибку:

    Error in seq.default(head(tt, 1), tail(tt, 1), deltat) : 
   'from' must be a finite number
   In addition: Warning message:
   In zoo(rval3, ix) :
   some methods for “zoo” objects do not work if the index entries in ‘order.by’ are not unique

Я думаю, я понял почему, потому чтоу меня есть много дубликатов в моей колонке i..date, к сожалению, я не хочу отбрасывать их, поскольку временные ряды ML Model немного отличаются от других обычных ML моделей.Поскольку модель временных рядов основана на последовательности предыдущих значений, удаление даты может повлиять на мое решение.

Любые предложения будут высоко оценены, спасибо.

Ответы [ 2 ]

0 голосов
/ 07 июня 2019

1) yearmon Предполагая, что New_DF воспроизводится в примечании в конце, используйте read.zoo, указав аргумент aggregate=sum.

library(zoo)
read.zoo(New_DF, FUN = as.yearmon, aggregate = sum)

дает:

May 2017 Jun 2017 Jul 2017 Jan 2018 
     267      242      461       73 

2) Дата Если вы хотите сохранить отдельные строки, используйте Date класс вместо yearmon (при условии, что даты уникальны).

read.zoo(New_DF)
## 2017-05-23 2017-06-24 2017-07-01 2017-07-05 2017-07-10 2018-01-20 
##        267        242        255         61        145         73 

3) порядковый номер Другая возможность - просто игнорировать даты и использовать 1, 2, .3, ..

zoo(New_DF$qty)
##   1   2   3   4   5   6 
## 267 242 255  61 145  73 

Примечание

Lines <- "      ï..date   qty
    1 2017-07-05  61
    2 2018-01-20  73
    3 2017-07-10 145
    4 2017-07-01 255
    5 2017-05-23 267
    6 2017-06-24 242 "
New_DF <- read.table(text = Lines)
0 голосов
/ 06 июня 2019

Не могли бы вы поделиться информацией о ваших данных.Также, если в данных есть какие-то дубликаты, вы можете просто суммировать их, чтобы не возникла вышеуказанная ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...