为什么在R中差分后子集中的NA值?

为什么在R中差分后子集中的NA值?,r,subset,na,R,Subset,Na,您好,提前谢谢。我正在尝试对序列X的一个子集进行单位根测试,在它被差分之后,X\u diff X_diff <- diff(X, differences = 1) urdfTest( subset(X_diff, dat[["Year"]] > 2001 ), lags = 4, type = c("c"), doplot = TRUE) 为什么会出现NA,如何运行差分序列的子集而不出现NA错误 我打赌问题在于你有差异,因此,差异的一端是寻找一个不存在的年份(要么是你有数据的第一

您好,提前谢谢。我正在尝试对序列
X
的一个子集进行单位根测试,在它被差分之后,
X\u diff

X_diff <- diff(X, differences = 1)

urdfTest( subset(X_diff, dat[["Year"]] > 2001 ), lags = 4, type = c("c"), doplot = TRUE)

为什么会出现
NA
,如何运行差分序列的子集而不出现
NA
错误

我打赌问题在于你有差异,因此,差异的一端是寻找一个不存在的年份(要么是你有数据的第一年的前一年,要么是你有数据的最后一年的后一年)

解决方案是,将一组年数与实际的一组年数相差一年

编辑

再想一想,我认为你应该在区别之前先细分,而不是相反。差不多

X_2001 <- subset(X, dat[["Year"]] > 2001)
urdfTest(X_2001, MORE CODE HERE)
X_2001)
urdfTest(X_2001,此处有更多代码)

这个答案显然是关于差分时间序列的逻辑,适用于许多实现,而不是R中的实现细节。我不清楚为什么这在CV中被认为是离题的。我同意这样问这个问题,但实际问题似乎更多的是统计分析(在思考差异转换将产生什么影响的意义上)。也许我错了;这不是第一次。或者可能是我错了。也不是第一次。:-@PeterFlom,谢谢你的建议。我试图尝试一下,但似乎做不好。你有密码吗?我正在尝试:X_diff@PeterFlom,成功了!非常感谢你。你知道发生这种情况的技术原因吗?我不熟悉R,但不熟悉SPSS和STATA之类的统计程序。
traceback()的输出是什么?
X_diff@Frank您的意思是X_diff[!is.na(X_diff)]吗?这里不需要
这个
<代码>-哪个(…)
也可以工作,但是
!哪个(…)
没有。谢谢大家的支持@ashkan,当我尝试运行单位根测试,然后使用traceback()时,我得到了以下结果:3:stop(“\nNAs in y.\n”)2:ur.df(x,type=type,lags=lags)1:urdfTest(subset(TBG_diff,dat[[“Year”]]>2001),lags=4,type=c(“ct”),doplot=TRUE)@Frank是的,我仍然很遗憾
X_2001 <- subset(X, dat[["Year"]] > 2001)
urdfTest(X_2001, MORE CODE HERE)