%let gpath=C:\; %let dpi=200; %let w=4in; %let h=3in; ods html close; ods listing gpath="&gpath" image_dpi=&dpi; /*--Survey Data with breaks--*/ data spark; format Value dollar8.0; keep Year Months Value Yearlbl; do Year=2006 to 2015; base=110000+(year-2006)*10000; yearlbl=year; do Months=6, 12, 24, 36, 48; Value=base*(1+0.01*rannor(2)); output; yearlbl=.; end; end; run; /*ods html;*/ /*proc print data=spark;*/ /* var year yearlbl months value;*/ /*run;*/ /*ods html close;*/ /*--Spark Table direct from data-*/ ods graphics / reset width=&w height=&h imagename='Spark_Table_1'; title 'Inpatient Claim Run-out Patterns per Year'; title2 'Run-out periods: 6, 12, 24, 36, and 48 months'; proc sgpanel data=spark; format value dollar8.0; panelby year / layout=rowlattice onepanel uniscale=column noheader noborder; series x=months y=value / markers markerattrs=(symbol=circlefilled size=5); rowaxistable yearlbl / y=value nomissingchar valueattrs=(size=9) position=left separator nolabel pad=20; rowaxistable value / y=value class=months nomissingchar valueattrs=(size=9) position=left separator labelpos=top pad=20; rowaxis display=none; colaxis display=none; run; /*--Compute mid values for each row of values and output as multi columns--*/ data sparkMid; keep year mid m06 m12 m24 m36 m48; label m06='Month 06' m12='Month 12' m24='Month 24' m36='Month 36' m48='Month 48'; retain min max m06 m12 m24 m36 m48; drop min max; set spark; by year; if first.year then do; min=1e6; max=-1e6; call missing (m06, m12, m24, m36, m48); end; else do; min=min(min, value); max=max(max, value); end; select (months); when (6) m06=value; when (12) m12=value; when (24) m24=value; when (36) m36=value; when (48) m48=value; end; mid=.; if last.year then do; mid=(min+max)/2; output; end; run; /*--Merge data--*/ data final; set spark(drop=yearlbl) sparkmid; by year; run; /*ods html;*/ /*proc print ;*/ /* var year months value mid m06 m12 m24 m36 m48;*/ /*run;*/ /*ods html close;*/ /*--Spark Table-*/ ods graphics / reset width=&w height=&h imagename='Spark_Table_2'; title 'Inpatient Claim Run-out Patterns per Year'; title2 'Run-out periods: 6, 12, 24, 36, and 48 months'; proc sgpanel data=final; format value m06 m12 m24 m36 m48 dollar8.0; styleattrs wallcolor=cxe7ebf7; panelby year / layout=rowlattice onepanel uniscale=column noheader noborder spacing=5; series x=months y=value / markers markerattrs=(symbol=circlefilled size=5); rowaxistable year m06 m12 m24 m36 m48 / y=mid nomissingchar valueattrs=(size=8) position=left pad=10 labelpos=top; rowaxis display=none; colaxis display=none; run; title;