In the proc report and with group keyword, variable that follow the same value can be displayed only at the first observation, but is there an option specification that displays "last" instead of "first"?
For example with this SAS official blog,
"Canada", "Pacific" of the region subject to the group keyword are displayed on the first line of the group.
Normal group displays Like this.
proc report data=shoes nowd;
title 'REPORT Default Behavior';
column region subsidiary product,(sales sales=savg);
define region / group
style(column)=Header;
define subsidiary / group
style(column)=Header;
define product / across 'Product Sales';
define sales / sum 'Sum' f=dollar10.;
define savg / mean 'Mean' f=dollar10.;
rbreak after / summarize style=Header;
run;
What I want is like this.Look position of Canada and Pacific.
Please let me know the option / technique to display like this.
Hi:
You need to change the vertical adjustment to "bottom" in order to change the position of the text in the spanning row cell. So you will need to change the VJUST attribute, as shown in this code.
cynthia
proc sort data=sashelp.shoes out=shoes;
by region subsidiary product;
where region in ('Canada' 'Pacific') and
product contains 'Casual';
run;
proc report data=shoes nowd spanrows;
title 'VJUST=M';
column region subsidiary product,(sales sales=savg);
define region / group
style(column)=Header{vjust=m};
define subsidiary / group
style(column)=Header;
define product / across 'Product Sales';
define sales / sum 'Sum' f=dollar10.;
define savg / mean 'Mean' f=dollar10.;
rbreak after / summarize style=Header;
run;
proc report data=shoes nowd spanrows;
title 'VJUST=B';
column region subsidiary product,(sales sales=savg);
define region / group
style(column)=Header{vjust=b};
define subsidiary / group
style(column)=Header;
define product / across 'Product Sales';
define sales / sum 'Sum' f=dollar10.;
define savg / mean 'Mean' f=dollar10.;
rbreak after / summarize style=Header;
run;
Hi:
You need to change the vertical adjustment to "bottom" in order to change the position of the text in the spanning row cell. So you will need to change the VJUST attribute, as shown in this code.
cynthia
proc sort data=sashelp.shoes out=shoes;
by region subsidiary product;
where region in ('Canada' 'Pacific') and
product contains 'Casual';
run;
proc report data=shoes nowd spanrows;
title 'VJUST=M';
column region subsidiary product,(sales sales=savg);
define region / group
style(column)=Header{vjust=m};
define subsidiary / group
style(column)=Header;
define product / across 'Product Sales';
define sales / sum 'Sum' f=dollar10.;
define savg / mean 'Mean' f=dollar10.;
rbreak after / summarize style=Header;
run;
proc report data=shoes nowd spanrows;
title 'VJUST=B';
column region subsidiary product,(sales sales=savg);
define region / group
style(column)=Header{vjust=b};
define subsidiary / group
style(column)=Header;
define product / across 'Product Sales';
define sales / sum 'Sum' f=dollar10.;
define savg / mean 'Mean' f=dollar10.;
rbreak after / summarize style=Header;
run;
Hi,Cynthia
Thank you so much !!
It worked very good!
Sincerely,t_ar_taat
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.