Как преобразовать набор данных в данные временного ряда в R? - PullRequest
0 голосов
/ 02 декабря 2019

У меня есть фрейм данных, который я пытаюсь преобразовать во временной ряд. Ниже приведено изображение нескольких строк данных. Как видите, кадр данных не включает каждый день . Итак, есть ли способ изменить это на данные временных рядов? Поскольку приведенный здесь код не учитывает пропущенные дни.

df3 <- ts(df2$Freq, start=c(2015), end=c(2017), frequency=365)

enter image description here

structure(list(Police_Killings = structure(c(16437, 16438, 16439, 
16440, 16441, 16442), class = "Date"), Freq = c(2L, 1L, 3L, 1L, 
4L, 4L)), row.names = c(NA, 6L), class = "data.frame")

Ответы [ 3 ]

1 голос
/ 02 декабря 2019

ts обычно не используется для ежедневных серий. Он в основном используется для регулярных ежемесячных и квартальных серий. Вы можете представить это как серию zoo или xts.

library(zoo)

d <- data.frame(date = "2017/01/01", Freq = 3)  # sample data
z <- read.zoo(d, format = "%Y/%m/%d")
1 голос
/ 02 декабря 2019

Поскольку у вас есть данные, это фрейм данных, вы можете использовать complete из tidyr, чтобы заполнить пропущенные даты и заполнить их столбец Freq 0.

tidyr::complete(df, Police_Killings = seq(min(Police_Killings), 
      max(Police_Killings), by = "1 day"), fill = list(Freq = 0))

Вы можетезатем преобразуйте его в объект временного ряда, необходимый для дальнейшей обработки.

0 голосов
/ 02 декабря 2019

Пакет lubridate() отлично подходит для преобразования в форматы даты.

library(lubridate)

df3$Police_Killings <- ymd(df3$Police_Killings)
...