0

我有一个结果集,如:

  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

谢谢!!

4

1 回答 1

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;
于 2013-07-25T02:56:39.540 回答