如何在不使用PROC SQL的情况下在SAS中创建数据集摘要

时间:2013-07-24 22:05:40

标签: sas

我的结果集如下:

  Name number reg_type1 reg_type2 reg_type3 reg_type4 reg_type5 reg_type6 reg_type7
  aaa   123       Y         N       Y          N          Y       N         N
  bbb   234       N         N       Y          N          Y       N         N
  ccc   456       Y         N       Y          Y          N       Y         Y

我希望结果集如下:

  Name   number      level1       level2        level3      level4      level5 
  aaa     123       reg_type1    reg_type3     reg_type5    NULL         NULL
  bbb     234       reg_type3    reg_type5        NULL      NULL         NULL
  ccc     456       reg_type1    reg_type3     reg_type4    reg_type6   reg_type7

谢谢!

1 个答案:

答案 0 :(得分:1)

要回答问题中的内容(而不是标题),可以使用数组轻松完成:

data have;
input Name $  number (reg_type1-reg_type7) ($);
datalines;
aaa   123       Y         N       Y          N          Y       N         N
bbb   234       N         N       Y          N          Y       N         N
ccc   456       Y         N       Y          Y          N       Y         Y
;;;;
run;
data want;
set have;
array regs reg:;
length level1-level5 $15;
array level[5] $;
_l = 1;
do _t = 1 to dim(regs);
 if regs[_t]='Y' then do;
   level[_l]=vname(regs[_t]);
   _l = _l+1;
 end;
end;
run;