開始使用免費開始

取代遺漏資料 - 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

編輯並執行程式碼