开始使用免费开始使用

替换缺失数据 - I

在上一个练习中,您发现季度 GDP 数据缺失了多条观测。事实上,您在上一个练习中调用 summary() 时发现共有 80 个缺失值!

正如您在首门 xts 课程中学到的那样,xts 和 zoo 提供了多种处理缺失数据的函数。

最简单的方法是 na.locf() 命令,它会将缺失位置之前的最后一个观测向前填充(因此称为"last observation carried forward",或 locf)。当您希望在数据增长假设上更为保守时,这通常是处理缺失值的较合适方式。

类似的方法也可反向进行:取缺失值之后的第一个观测并向后填充("next observation carried backward",或 nocb)。通过在 na.locf() 中将 fromLast 参数设为 TRUE 即可实现该技术。

至于哪种方法更好,取决于您所处理的数据类型,以及您对数据随时间变化方式的先验判断。

本练习是课程的一部分

案例研究:在 R 中分析城市时间序列数据

查看课程

练习说明

  • 使用 na.locf() 基于"最后一次观测向前填充"来补齐 gdp_xts 的缺失值。将新的 xts 对象保存为 gdp_locf
  • 再次调用 na.locf(),基于"下一次观测向后填充"来补齐 gdp_xts 的缺失值。为此,将 fromLast 参数设为 TRUE。将新的 xts 对象保存为 gdp_nocb
  • 使用 plot.xts() 绘制这两个对象的图。包含预写好的 par() 命令,以便将两幅图并排显示。
  • 分别查询 gdp_locfgdp_nocb 中 1993 年的 GDP。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Fill NAs in gdp_xts with the last observation carried forward
gdp_locf <- 

# Fill NAs in gdp_xts with the next observation carried backward 
gdp_nocb <- 

# Produce a plot for each of your new xts objects
par(mfrow = c(2,1))
plot.xts(___, major.format = "%Y")
plot.xts(___, major.format = "%Y")

# Query for GDP in 1993 in both gdp_locf and gdp_nocb

编辑并运行代码