If you have Y1 or Z2 ...........
Data Have ;
infile datalines dsd ;
input formula : $30. ;
datalines ;
X1 / X2 + X4
(X1 + X2) / (X3 - X1) * 2
;
Run ;
data temp;
set have;
id+1;
pid=prxparse('/[a-z]\d+/i');
start=1;end=length(formula);
call prxnext(pid,start,end,formula,p,l);
do while(p>0);
temp=substr(formula,p,l);
output;
call prxnext(pid,start,end,formula,p,l);
end;
keep id temp;
run;
proc sort data=temp nodupkey;by id temp;run;
proc transpose data=temp out=want(drop=_:) prefix=C;
by id;
var temp;
run;
... View more