2014-03-13 106 views
0

假設我在數據集中有變量X1,X2,X3和組。組具有不同的值,例如1-10,X1,X2,X3是連續變量。在整個數據集中,X1,X2和X3的遺漏值彼此獨立。換句話說,X1可能會丟失,但不會是X2和X3,另一個觀察結果可能只是X3丟失。SAS缺失值替換

對於每個缺失的值,我想用它在該觀察的Group#內的該變量的中值代替它。

有沒有什麼好的方法可以做到這一點?

預先感謝

+0

爲了實現您的結果,@ Joe的答案是要走的路。我也建議看看PROC MI(多重插補)。這使得可以使用更復雜的方法,這對於任務的目的可能更好,例如,統計建模 – Longfish

回答

1

這裏的基本方法是多步驟:

  1. 計算位數由組(使用PROC裝置或類似的分析過程)
  2. 通過組合併到主數據集,與一個新的變量(說「x3_median」等)
  3. 在該datastep或後續的,x3 = coalesce(x3,x3_median);和類似的x1和x2。

您可以在單個datastep中或在單個PROC SQL連接中執行2和3操作。您理論上可以在一個SQL步驟中計算中位數並追加它,但這可能會更慢並且難以維護(因爲中位數對SQL來說是一個相對困難的計算,不能直接用函數完成 - MEDIAN函數是不是SQL中的聚合函數)。