使用COALESCE功能合并SAS行

sta*_*uyz 1 coalesce sas

我想在SAS中组合以下行.这是数据:

StudentNumber   Test1   Test2   Test3
001             .       86      .
001             94      .       .
001             .       .       75
002             68      .       .
002             .       82      .
002             .       .       97
Run Code Online (Sandbox Code Playgroud)

我希望行看起来如下所示:

StudentNumber   Test1   Test2   Test3
001             94      86      75
002             68      82      97
Run Code Online (Sandbox Code Playgroud)

我习惯于将列与COALESCE函数合并,但我不确定如何使用行来执行此操作.

Tom*_*Tom 7

您可以使用该UPDATE语句来执行此操作.update语句需要一个主数据集,每个BY组具有唯一的观察值,并且每个BY组可以有多个观察值的事务数据集.只有事务的非缺失值才会更改值.输出将按BY组进行一次观察,并应用所有事务.

通过将数据集选项添加obs=0到第一个引用,可以将现有数据用作主数据集和事务数据集.

data want;
   update have(obs=0) have;
   by studentnumber;
run;
Run Code Online (Sandbox Code Playgroud)