【发布时间】:2015-12-14 14:48:24
【问题描述】:
我有以下数据。我想编写一个 sas proc sql 代码来获取每个患者(ptno)的最后一个非缺失值。
data sda;
input ptno visit weight;
format ptno z3. ;
cards;
1 1 122
1 2 123
1 3 .
1 4 .
2 1 156
2 2 .
2 3 70
2 4 .
3 1 60
3 2 .
3 3 112
3 4 .
;
run;
proc sql noprint;
create table new as
select ptno,visit,weight,
case
when weight = . then weight
else .
end as _weight_1
from sda
group by ptno,visit
order by ptno,visit;
quit;
上面的sql代码不好用。
愿望输出数据如下:
ptno visit weight
1 1 122
1 2 123
1 3 123
1 4 123
2 1 156
2 2 .
2 3 70
2 4 70
3 1 60
3 2 .
3 3 112
3 4 112
【问题讨论】:
-
这在使用
retain的数据步骤中比在本机proc sql中更容易。 -
创建locf,因为这是我们遇到的一大堆问题。如果有人愿意,请随时创建标签 wiki - 否则我会在有时间的时候创建。
-
@joe,非常感谢!