使用 COALESCE 函数合并 SAS 行
Merging SAS rows with COALESCE function
我正在尝试在 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
语句来做到这一点。更新语句期望有一个源数据集,每个 BY 组都有唯一的观察结果,以及一个事务数据集,每个 BY 组可能有多个观察结果。只有交易的非缺失值才会更改值。输出将对每个 BY 组有一个观察值并应用所有交易。
您可以将现有数据用作源数据集和交易数据集,方法是将数据集选项 obs=0
添加到第一个引用。
data want;
update have(obs=0) have;
by studentnumber;
run;
我正在尝试在 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
语句来做到这一点。更新语句期望有一个源数据集,每个 BY 组都有唯一的观察结果,以及一个事务数据集,每个 BY 组可能有多个观察结果。只有交易的非缺失值才会更改值。输出将对每个 BY 组有一个观察值并应用所有交易。
您可以将现有数据用作源数据集和交易数据集,方法是将数据集选项 obs=0
添加到第一个引用。
data want;
update have(obs=0) have;
by studentnumber;
run;