
422
|
第
14
章
14.6 缺失时间序列的填充
14.6.1 问题
时间序列数据有缺失值。需要填充这些缺失日期 / 时间以及它们相应的观测值数据。
14.6.2 解决方案
使用缺少的日期 / 时间创建不含时间序列观测值的 zoo 对象或 xts 对象。然后将数据与
该对象合并,获取两者的并集:
empty <- zoo(, dates) # 'dates' is vector of the missing dates
merge(ts, empty, all = TRUE)
14.6.3 讨论
zoo 包在 zoo 对象的构造函数中包含一个方便的功能:可以构建一个仅仅含有时间而不
含有观测值的 zoo 对象。我们可以使用这些“假冒”对象来执行对其他时间序列对象的
填充。
假设你下载了上一个方法中使用的每月 CPI 数据。数据带有时间标签,即每月的第一天:
head(cpi)
#> cpi
#> 1999-01-01 0.938
#> 1999-02-01 0.938
#> 1999-03-01 0.938
#> 1999-04-01 0.945
#> 1999-05-01 0.945
#> 1999-06-01 0.945
R 软件仅仅知道除了每月的第一天外,其他日期没有观测值。但是,我们知道一个月里
每一天的 CPI 观测值都是一样的。首先,我们建立一个没有观测数据,仅仅有 10 年的
日期的零宽度 zoo 对象:
dates <- seq(from = min(index(cpi)), to = max(index(cpi)), ...