你可以使用SAS中的COALESCE 函数来返回数据集中每一行的第一个非遗漏值。
下面的例子说明了如何在实践中使用这个函数。
例子:如何在SAS中使用COALESCE
假设我们在SAS中拥有以下数据集,其中包含一些缺失值:
/*create dataset*/
data original_data;
input team $ points rebounds assists;
datalines;
Warriors 25 8 7
Wizards . 12 6
Rockets . . 5
Celtics 24 . 5
Thunder . 14 5
Spurs 33 19 .
Nets . . .
Mavericks . 8 10
Kings . . 9
Pelicans . 23 6
;
run;
/*view dataset*/
proc print data=original_data;

我们可以使用COALESCE函数来创建一个新的列,在得分、篮板和助攻列中的每一行中返回第一个非缺失的值:
/*create new dataset*/
data new_data;
set original_data;
first_non_missing = coalesce(points, rebounds, assists);
run;
/*view new dataset*/
proc print data=new_data;

下面是如何选择第一个 非缺失列中的值的:
- 第一行:分数、篮板和助攻中的第一个非遗漏值是25。
- 第二行:分数、篮板和助攻中第一个不缺的值是12。
- 第三行:分数、篮板和助攻中第一个不缺的数值是5。
以此类推:
注1:如果所有的值都缺失(如第7行),那么COALESCE函数将简单地返回一个缺失值
注意2:COALESCE函数只对数字变量起作用。如果你想返回一个字符变量列表中的第一个非缺失值,请使用COALESCEC函数
其他资源
下面的教程解释了如何在SAS中执行其他常见任务: