BASKET ANALYSES.
14. April 2007 08:06data PRODUCTS;
set PRODUCTS;
array dich[15] prod1-prod15;
array name{15} $ _temporary_ ('p1',....,'p2' );
do i=1 to 15;
category=dich [i];
prod=name[i];
num_product=i;
output;
end;
keep sd10_numerator category num_product ;
run;
data BASKET_ANALYSES;
set zevet1.for_model(where=(tzvt_activ_form='300'));
array PR prod1-prod15;
m=0;
do i=1 to 15;
do j=i+1 to 15;
do k=j+1 to 15;
comb=PR[i]+PR[j]+PR[k];
name=compress(vname(aa[i])||'_'||vname(aa[j])||'_'||vname(aa[k]));
m+1;
if comb<3 then continue;
else output;
end;
end;
end;
run;
Now we wante to fix for each kind of treatment the most frequent combinations:
proc freq data=basket_analyses;
tables name*treatment/out=basket_result;
run;
proc sort data=basket_result;
by treatment descending count;
run;
data basket_result;
set basket_result;
by treatment ;
retain counter ;
if first.treatment then counter=1;
if treatment =lag(treatment) then counter=counter+1;
output;
run;
data frequent_resultes;
set basket_result;
if counter <=4;
run;

Email 