data Percent(drop=Qtr); set prog2.Donate; Total=sum(of Qtr1-Qtr4); array Contrib{4} Qtr1-Qtr4; array Percent{4}; do Qtr=1 to 4; Percent{Qtr}=Contrib{Qtr}/Total; end; run; proc print data=Percent noobs; title1 "Percentage that each quarter's contribution"; title2 'represents of the total annual contribution'; var Id Percent1-Percent4; format Percent1-Percent4 percent5.; run; data Compare(drop=Qtr); set prog2.Donate; array Contrib{4} Qtr1-Qtr4; array Diff{4}; array Goal{4} _temporary_ (10,15,5,10); do Qtr=1 to 4; Diff{Qtr}=Contrib{Qtr}-Goal{Qtr}; end; run; proc print data=Compare noobs; title 'Comparison of actual employee contributions versus expected contributions'; var Id Diff1 Diff2 Diff3 Diff4; run; data Rotate(drop=Qtr1-Qtr4); set prog2.Donate; array Contrib{4} Qtr1-Qtr4; do Qtr=1 to 4; Amount=Contrib{Qtr}; output; end; run; proc print data=Rotate noobs; title 'Data set rotation using SAS array processing'; run;