- options validvarname=any;
- options symbolgen=0;
- data x;
- input id x1$ x2$ x3$ x4$ x5$ @@ ;
- cards;
- 1 张三 李四 nan nan nan
- 2 张二 李三 王五 nan nan
- 3 王五 赵六 孙七 李八 钱九
- ;
- run;
- %macro c;
- data _null_;
- set x nobs=m;
- %do q=1 %to 5;
- call symputx('id'||compress(id)||compress(&q),x&q);
- %end;
- run;
- data a;
- set x;
- %do m=1 %to 3;
- %do q=1 %to 5;
- /* value=RESOLVE('id'||compress(&m)||compress(&q));*/
- if (x&q^=nan) and (&m=id) then do;
- &&id&m&q='1';
- end;
- else if(x&q=nan) and (&m=id) then do;
- &&id&m&q='0';
- %put &&id&m&q &m &q;
- end;
- %end;
- %end;
- drop nan x1 x2 x3 x4 x5;
- run;
- %mend;
- %c;