首页 > 解决方案 > 处理数据集中缺失的月份值并绘制时间序列

问题描述

所以我目前在 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 年,缺少的月份是“11 月”和“12 月”,而在2004 年,缺少的月份是“9 月、10 月、11 月和 12 月”

年份列表一直持续到 2012 年,确实有些年份所有月份都存在。尽管有些年份像上面的示例一样缺少某些月份,但我仍然可以绘制时间序列,而忽略某些年份存在缺少月份的事实吗?

标签: r

解决方案


我们可以转换为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()

推荐阅读