- data test;
- input id base x1 x2 x3;
- cards;
- 1 12 4 15 7
- 2 10 11 9 8
- 3 15 10 14 12
- 4 10 16 11 12
- ;
- run;
- /*- first -*/
- proc sort data=test;
- by id;
- data test1;
- set test;
- by id;
- length varname $200.;
- varname='';
- array var x:;
- do over var;
- if .<var<base then do;
- varname=catx(', ', varname, vname(var));
- end;
- end;
- if last.id and varname ne '' then output;
- run;
- /*- last -*/
- data test2;
- set test;
- array x(*) x1-x3;
- array b(*) b1-b3;
- do i=1 to dim(x);
- if x(i)<base then b(i)=1;
- else if .<base<x(i) then b(i)=0;
- end;
- if sum(of b1-b3,0)=0 then delete;
- drop i b1-b3;
- run;