SAS中是否有相当于Oracle NVL的功能?
例如,如果我在SAS中有where子句,则说:
where myVar > -2;
Run Code Online (Sandbox Code Playgroud)
它不会包含任何具有myVar =的行.
如果我想将缺失值视为零,我必须说:
where myVar > -2 or missing( myVar )
Run Code Online (Sandbox Code Playgroud)
我希望能够做到这样的事情:
where NVL( myVar, 0 ) > -2 // or some SAS equivalent
Run Code Online (Sandbox Code Playgroud)
在SAS中有类似的东西吗?
Vil*_*nen 13
该COALESCE函数应该做的工作.
where coalesce(myVar,0) > -2
Run Code Online (Sandbox Code Playgroud)
我不确定该功能是否在SAS 9中可用,所以如果你有一个非常旧的SAS版本,这可能不起作用.
使用coalesce函数是执行此操作的正确方法.
但是如果你有一个旧版本的SAS没有实现coalesce,你可以使用这个技巧:
where sum(myVar,0) > -2
Run Code Online (Sandbox Code Playgroud)
如果使用SAS中的sum函数进行添加,则求和中的任何非缺失数将强制结果不会丢失.
因此,使用sum函数添加0会将缺失值转换为0,并且非缺失值将保持不变.