使用COALESCE功能合并SAS行

时间:2018-11-26 14:34:55

标签: sas coalesce

我正在尝试在SAS中合并以下行。数据如下:

StudentNumber   Test1   Test2   Test3
001             .       86      .
001             94      .       .
001             .       .       75
002             68      .       .
002             .       82      .
002             .       .       97

我希望这些行如下所示:

StudentNumber   Test1   Test2   Test3
001             94      86      75
002             68      82      97

我习惯用COALESCE函数合并列,但是我不确定如何对行进行合并。

1 个答案:

答案 0 :(得分:6)

您可以使用UPDATE语句执行此操作。 update语句期望具有一个每个BY组具有唯一观测值的主数据集,以及一个每个BY组可以具有多个观测值的事务数据集。只有交易的非缺失值会更改这些值。在所有BY交易中,每个BY组的输出将只有一个观察值。

通过将数据集选项obs=0添加到第一个引用,您可以将现有数据用作主数据集和交易数据集。

data want;
   update have(obs=0) have;
   by studentnumber;
run;