SAS中是否有等效的Oracle NVL功能?將SAS中的缺失值視爲零在哪裏條款
舉例來說,如果我有SAS,說where子句:
它是不會包括具有myVar的=任何行。
如果我要處理缺失值爲零,我不得不說:
where myVar > -2 or missing(myVar)
我希望能夠做這樣的事情:
where NVL(myVar, 0) > -2 // or some SAS equivalent
有沒有這樣的東西在SAS?
SAS中是否有等效的Oracle NVL功能?將SAS中的缺失值視爲零在哪裏條款
舉例來說,如果我有SAS,說where子句:
它是不會包括具有myVar的=任何行。
如果我要處理缺失值爲零,我不得不說:
where myVar > -2 or missing(myVar)
我希望能夠做這樣的事情:
where NVL(myVar, 0) > -2 // or some SAS equivalent
有沒有這樣的東西在SAS?
使用coalesce函數是正確的方法。
但是,如果你有一箇舊版本的SAS的聚結在那裏沒有實現,你可以用這一招:如果您在SAS使用sum function在添加任何非缺失數
where sum(myVar,0) > -2
總和會迫使結果不失蹤。
因此,用sum函數加0會將缺失值轉換爲0,並且非缺失值將保持不變。
+1:這是一個很棒的建議!我們不再支持我們的產品的SAS 8,所以我真的不在乎是否可以合併,但如果我這樣做,這將是一個巧妙的解決方法。 – Adnan 2009-06-26 23:36:19
y可以做的一件事是 like array varlistname var1 var2 var3 varn; if array <>。然後輸出;
它將輸出中具有非缺失值
請注意,這只是在非SAS數據與myVar的=行的數據集。將不包括在內。原因是缺少的值是NULL,並且與NULL的比較總是計算爲FALSE。 在原生SAS數據中,缺失值被視爲非負數,該數字小於零。 所以「哪裏myVar> -2;」在本地SAS數據上運行時,實際上會使用缺失值。 – 2009-06-26 13:46:56