鉴于数据集:
data hello;
input id value;
cards;
101 22
101 44
103 22
104 22
104 55
106 22
106 .
;
run;
我正在尝试按如下方式创建一个n变量和Dtype by Id变量:
Id value Nvalue Dtype
101 22
101 44
33 Average
103 22
104 22
104 55
38.5 Average
106 22
106 .
22 LOCF
是否有任何可能的方法来获得上述输出。
答案 0 :(得分:1)
这是我的尝试。我在示例中添加了一些观察结果,以便在更难以预测的模式中出现缺失值时向您显示结果。
data have;
input id value;
cards;
101 22
101 44
103 22
104 22
104 55
106 22
106 .
107 25
107 .
107 22
108 .
108 .
109 10
109 12
;
run;
proc sql;
create table averages as
select id, avg(value) as nvalue
from have
group by id;
quit;
data want (drop=missing);
set have averages;
by id;
retain missing;
if first.id then
missing=.;
if not last.id and value=. then
missing=1;
length dtype $10;
if last.id then
do;
if missing=1 then
dtype="LOCF";
else dtype="Average";
end;
run;