按组折叠非缺失值

时间:2014-06-12 00:28:58

标签: sas

Name    Apr14 May14 Jun14 Aug14
John    R
Peter   G
Peter          G
Peter                 G
Louis                 R
Louis                      G
Carl                  R
Dany    R
Dany                  G

我需要唯一的值,但保持这些值不会丢失。

Name    Apr14 May14 Jun14 Aug14
John    R
Peter   G      G      G
Louis                 R    G
Carl                  R
Dany    R             G

我怎么能这样做?

1 个答案:

答案 0 :(得分:4)

最简单的方法是更新语句。它仅使用非缺失更新缺失值。我们用(obs = 0)初始化它,因为' base'数据集在这里实际上并不重要 - 我们只是用它来折叠事物。

data have;
infile datalines truncover;
input (Name Apr14 May14 Jun14 Aug14) ($);
datalines;
John    R
Peter   G
Peter   .       G
Peter   .   .           G
Louis   .   .           R
Louis   .   .   .             G
Carl    .     .         R
Dany    R
Dany    .      .        G
;;;;
run;

proc sort data=have;
by name;
run;

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