数据丢失滞后

时间:2013-05-01 21:41:03

标签: r diff missing-data

我有关于州级别批准评级的数据集。我需要将其中一个变量滞后两年。

数据是年度的,跨越1970年至2008年。显然,如果我滞后数据,我将失去一些观察结果(即:1970年将无法找到1968年的数据)我很好地失去了这些观察结果,但是当我试图滞后时,diff命令会返回错误。

然而,当我运行延迟时,我得到以下错误:替换与数​​据不匹配:

> df$lagvar <- diff(df$var, lag=2)
Error in `$<-.data.frame`(`*tmp*`, "lagvar", value = c(-0.4262501,  : 
replacement has 230 rows, data has 232

我已经四处寻找,但无法找到解决方案。关于如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:6)

默认情况下,

diff不会使用前导NA。你必须自己添加。

df$lagvar <- c(NA, NA, diff(df$var, lag=2))

您可以编写一个简单的包装函数来为您完成。这样的事情,也许是:

mydiff <- function(x, ...) {
  d <- diff(x, ...)
  c(rep(NA, NROW(x)-NROW(d)), d)
}