r - 因数据缺失而滞后

标签 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

我四处寻找,但找不到解决方案。关于如何解决这个问题有什么想法吗?

最佳答案

默认情况下,

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)
}

关于r - 因数据缺失而滞后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16327000/

相关文章:

git - 'git diff' 可以只输出长行中的更改吗?

python - pandas:在(多索引)DataFrame上使用每个组中最常见的值执行 fillna() 的最佳方法是什么?

r - 如何使用鼠标对纵向数据中的缺失值进行多重插补?

r - 在 R 中,如何估算低于检测限的左删失数据?

regex - 忽略 diff 命令中带有反斜杠的模式

r - 转置数据框

r - 找到向量中的最小值但没有 0

linux - 是否有 "cde"的类似版本可以在 Microsoft Windows 上运行?

python - Meld 需要 pygtk 2.8.0 或更高版本

r - 如何在 R Shiny 的 renderText 中添加项目符号?