2014-02-12 93 views
0

你好,並提前致謝。我試圖在一系列X的一個子集運行單位根檢驗,它已經差分後,X_diff爲什麼在R中差分之後子集中的NA值?

X_diff <- diff(X, differences = 1) 

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

我得到以下錯誤:'Error in na.fail.default(as.ts(x)) : missing values in object'

現在我發現,如果我查看整個X_diff變量,我沒有得到NA值。但是,如果我查看X_diff變量(下面的代碼)的子集,我最終會得到一個NA的值,並且對於任何一年放入條件的情況都是如此。

TBG_diff[which(dat[["Year"]] > 2001)] 

爲什麼NA出現,我怎麼可以運行差分序列的子集沒有得到NA錯誤?

+0

'traceback()'的輸出是什麼? – AdamO

+0

嘗試以下方法後仍然存在問題:'X_diff < - X_diff [!which(is.na(X_diff))]'? – Jota

+1

@Frank你的意思是x_diff [!is.na(x_diff)]?你不需要這裏的'which'。 ' - (..)'也會起作用,但是'哪個(...)'沒有。 – Vincent

回答

1

我敢打賭,問題是你有差異,所以,差異的一端是尋找一個不存在的年份(無論是第一年你有數據還是最後一年一年你有數據)。

的解決辦法是爲一組爲一年比你的實際設定的年

編輯

關於它的思考多一些短差,我想你應該子集在你面前的差異,而不是其他方式。類似於

X_2001 <- subset(X, dat[["Year"]] > 2001) 
urdfTest(X_2001, MORE CODE HERE) 
+0

這個答案顯然是關於差異時間序列的邏輯,並且適用於許多實現,而不是R中實現的細節。我不清楚爲什麼這被認爲是關於CV的主題。 –

+0

在我看來,完全是R代碼。 –

+0

我同意這個問題是以這種方式提出的,但實際問題似乎更多的是統計分析(從思考差異轉換會產生什麼影響的意義上說)。也許我錯了;這不會是第一次。 –