Работа с отсутствующими значениями месяца в наборе данных и построение временного ряда

#r

#r

Вопрос:

Итак, в настоящее время у меня есть набор данных в R:

 Date            Mean_Value

2003-10-01      7.94
2004-02-01      3.17
2004-03-01      4.62
2004-04-01      5.38
2004-05-01      4.17
2004-06-01      6.40
2004-07-01      4.12
2004-08-01      3.09
2005-01-01      5.32
.
.
  

и я планирую построить временной ряд для вышеуказанного набора данных, но меня беспокоит то, правильно ли это делать, просто построить временной ряд, даже если в приведенном выше наборе данных отсутствуют несколько месяцев года? например, в 2003 году отсутствующими месяцами являются «Ноябрь» и «Декабрь», в то время как в 2004 году отсутствующими месяцами являются «сентябрь, октябрь, ноябрь и декабрь».

Список лет продолжается до 2012 года, и действительно, есть несколько лет, в которых присутствуют все месяцы. Хотя в некоторых годах отсутствуют определенные месяцы, как в примере выше, смогу ли я по-прежнему отображать временные ряды, игнорируя тот факт, что в некоторые годы существуют недостающие месяцы?

Ответ №1:

Мы можем преобразовать в xts , а затем выполнить plot

 library(xts)
xt1 <- xts(df1$Mean_Value, order.by = as.Date(df1$Date))
plot(xt1)
  

Или используйте complete для создания отсутствующей «даты», а затем с ggplot построением графика

 library(tidyverse)
library(ggplot2)
df1 %>%
   complete(Date = seq(first(Date), last(Date), by = "1 month"), 
         fill = list(Mean_Value = 0)) %>% 
   ggplot(., aes(x = Date, y = Mean_Value))   
           geom_line()
  

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

1. в чем разница между xts и стандартным графиком ts?

2. @Maxxx Было бы более гибко форматировать ось x

3. итак, построение обычного временного ряда с отсутствующим месяцем не является неправильным, но использование xts придает ему большую гибкость и улучшает общий график?

4. @Maxxx Это зависит от того, какими значениями вы хотите заполнить недостающие месяцы. Во втором варианте я заполнил его 0s и построил график с ggplot . Вы можете это проверить