使用合并函数合并SAS行

使用合并函数合并SAS行,sas,coalesce,Sas,Coalesce,我正在尝试合并SAS中的以下行。以下是数据: StudentNumber Test1 Test2 Test3 001 . 86 . 001 94 . . 001 . . 75 002 68 . . 002 . 82 . 002 .

我正在尝试合并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函数合并列,但我不知道如何对行进行合并

您可以使用
UPDATE
语句来执行此操作。update语句希望有一个主数据集,每个组具有唯一的观测值,以及一个事务数据集,每个组可以有多个观测值。只有事务的非缺失值才会更改这些值。在应用所有事务的情况下,每个组的输出将有一个观察结果

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

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

您可以使用
UPDATE
语句来执行此操作。update语句希望有一个主数据集,每个组具有唯一的观测值,以及一个事务数据集,每个组可以有多个观测值。只有事务的非缺失值才会更改这些值。在应用所有事务的情况下,每个组的输出将有一个观察结果

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

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

是的,这奏效了!最初我的代码中有一个bug,但这是完美的!是的,这奏效了!最初我的代码中有一个bug,但这是完美的!