首页 > 解决方案 > 在 SAS 中合并多个不完整的记录

问题描述

我有一个数据集,每个 id 都有多个不完整的记录,所以有一个如图所示的最终数据集可能更有意义。基本上,这个想法是让非缺失数据填补第一行或第二行的值,只要相同的 id 即可。

在此处输入图像描述

标签: mergesas

解决方案


最简单的方法是自我更新。这使用了update语句的核心属性,即只有非缺失值可以替换其他值,以一种有趣的方式,允许像这样简化行。第一个obs=0只是提供一个空的基础来更新 - 数据集实际上是从该声明的第二次提及中读取的。

data have;
 id = 1;
 input x y z;
datalines;
1 . .
. 1 .
. . 1
;;;;
run;

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

推荐阅读