Here is an example to transpose data to a cross tab report using proc report and proc tabulate.
data input ; do _n_ = 26 to 31 ; do year = 2009 to 2012 ; date = put( mdy( 12, _n_, 2012 ), yymmdd10. ) ; value = round( ranuni( 1 ) * 1000, .01 ) ; output ; end ; end ; run ;
The below image contains the results of both procedures. The top result is from proc report followed by proc tabulate.
ods listing close ; ods pdf file = "c:\temp\xtab.pdf" startpage = no style = sasweb ; proc report data = input nowd ; column date year, value ('Daily Total' value = value2) ; define date / group '' ; define year / across '' ; define value / analysis sum '' format = dollar10.2 ; define value2 / analysis sum '' f = dollar10.2 ; rbreak after / dol skip summarize ; compute after ; date = 'Total' ; endcomp ; run ; proc tabulate data = input ; class date year ; var value ; table date = '' all = 'Total' , ( year = '' all = 'Daily Total' ) * value = '' * sum = '' * f = dollar10.2 ; run ; ods pdf close ; ods listing ;