Hello , I am working on macro to create variables names with suffix sequence number where value by condition. In one variable data is separated by delimiter ' ; ' , bases on this need to separate strings and find where string has value '=1' and take those strings by sequence and create variable names by sequence. In Below data last string does not have delimiter ':' , i am confused how to take that one. data test;
x="RIB 1 RIGHT=1;RIB 1 LEFT=0;RIB 2 RIGHT=1;RIB 2 LEFT=0;RIB 3 RIGHT=0;RIB 3 LEFT=1;
RIB 4 RIGHT=0;RIB 4 LEFT=1;RIB 5 RIGHT=0;RIB 5 LEFT=1;RIB 6 RIGHT=0;RIB 6 LEFT=0;
RIB 7 RIGHT=0;RIB 7 LEFT=1;RIB 8 RIGHT=0;RIB 8 LEFT=0;RIB 9 RIGHT=0;RIB 9 LEFT=0;
RIB 10 RIGHT=0;RIB 10 LEFT=1;RIB 11 RIGHT=1;RIB 11 LEFT=1;RIB 12 RIGHT=0;RIB 12 LEFT=0;
STERNUM=0;CLAVICLE RIGHT=0;CLAVICLE LEFT=0;SCAPULA RIGHT=0;SCAPULA LEFT=1";
run;
%macro LOC(var=);
%do k=1 %to 40;
if index(scan(&var,&k,';'),'=1')>0 then x_&k=scan(&var,&k,';');
else if scan(&var,&k,'=1')>0 then x_&k=scan(&var,&k,';');
/*Separating above concatenated into different variables */
if scan(vari,&k,'=1') ne '' then loc&k=scan(vari,&k,'=1');
else LOC1=scan(vari,1,'=1');
%end;
%mend;
data sk;
set test;
%loc(var=x);
run; Need output data set as below :
... View more