如何在SAS中使用COALESCE函数(附实例)

1,415 阅读1分钟

你可以使用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;

SAS coalesce function example

下面是如何选择第一个 非缺失列中的值的:

  • 第一行:分数、篮板和助攻中的第一个非遗漏值是25
  • 第二行:分数、篮板和助攻中第一个不缺的值是12
  • 第三行:分数、篮板和助攻中第一个不缺的数值是5

以此类推:

注1:如果所有的值都缺失(如第7行),那么COALESCE函数将简单地返回一个缺失值

注意2COALESCE函数只对数字变量起作用。如果你想返回一个字符变量列表中的第一个非缺失值,请使用COALESCEC函数

其他资源

下面的教程解释了如何在SAS中执行其他常见任务:

如何在SAS中规范化数据
如何在SAS中替换字符串中的字符
如何在SAS中用0替换缺失值
如何在SAS中删除重复的内容