时间序列数据缺失时间值和数据值

时间:2016-07-18 13:35:01

标签: r time-series missing-data

我在这里有以下时间序列数据集示例:

ymd      rf
19820103  3
19820104  9
19820118  4
19820119  2
19820122  0
19820218  5

现在,数据集应该以每日时间序列的方式进行组织。更具体地说,ymd应该从19820101到19820230连续变化。但是,从上面的示例中可以看出,数据集不是连续的,并且不包含诸如" 19820101"对于数据集不可用的这些日期,我希望能够包含缺失的日期并输入" 0"和#34; 19820102"等。 rf的值。

使脚本自动化此问题的最佳方法是什么?我必须在1979年到2016年的每日时间序列数据集中执行此操作。

2 个答案:

答案 0 :(得分:1)

假设您的数据位于名为" mydata"的数据框中。然后你可以做以下事情:

#Create full ymd with all the needed dates
ymd.full <- data.frame(ymd=seq(min(mydata$ymd), max(mydata$ymd)))

#Merge both datasets
mydata <- merge(ymd.full, mydata, all.x=T)

#Replace NAs with 0
mydata[is.na(mydata)] <- 0

答案 1 :(得分:0)

此解决方案类似于@Gaurav Bansal,但使用dplyr

ymd.full <- data.frame(ymd=seq(min(mydata$ymd), max(mydata$ymd))
newdata  <- dplyr::left_join(ymd.full, mydata)
newdata[is.na(newdata)] <- 0

我想知道ymd如何转换为约会,并且因为我想你想进行时间序列分析,是否在你的集合中计算了闰日。