I have the following code which loop through all possible combination of 3 factors data have; input a1 a2 a3 a4 win_or_loss ; cards; 1 1 1 1 1 1 1 1 1 1 -1 2 1 1 0 0 1 3 2 1 0 0 1 4 2 0 2 1 -1 5 2 0 2 1 1 6 2 0 3 1 -1 7 run;
data want (keep=a_: b_: c_: win_or_loss ); SET have; array a{*} a1 a2 a3 a4; array b{*} a1 a2 a3 a4; array c{*} a1 a2 a3 a4; do i=1 to dim(a); do j=i+1 to dim(b); do k=j+1 to dim(c); a_name=vname(a{i}); b_name=vname(b{j}); c_name=vname(c{k}); a_value=a{i}; b_value=b{j}; c_value=c{k}; output ww; end; end; end; run;
I want is to limit the first Do loop within a subset of value say (a1= 1 , a1=2 a2=1 , a2=0, a3=2) (with the setup like that, I know there will be some duplicate say (a1=1 a1=1 a2=2) but it is ok)
data want(keep=a_: b_: c_: win_or_loss ID); SET have;
array a{*} a1 a2 a3 a4; array b{*}a1 a2 a3 a4; array c{*}a1 a2 a3 a4;
do (a1= 1 , a1=2 a2=1 , a2=0, a3=2) ; *of course instead of a1=1,2,3.., a2=1,2,3... a3=1,2,3..; do j=1 to dim(b); *This run full; do k=j+1 to dim(c); *this run full; a_name=vname(a{i}); b_name=vname(b{j}); c_name=vname(c{k});
a_value=a{i}; b_value=b{j}; c_value=c{k};
output ww; end; end; end; run;
I appreciate it if you could help me out.
HHC
... View more