BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
GertNissen
Barite | Level 11

Is there a way to remove only the repeating sub headings [red arrow] - (while still keeping the first heading [blue arrow])

 

Tabulate row heading.png

Sample code to produce the output above

proc tabulate data=sashelp.class;
class age name;
var Weight;

table age*(name all='all name'*[style=[background=lightblue]]) all='all age', Weight;
run;

To get something like this with only a top header and no header for each subtotal.

 

GertNissen_0-1588775177325.png

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
Cynthia_sas
Diamond | Level 26

Hi:

  The best you can do with TABULATE is to move the row headers (Age/Name) up into the Box on the left side of the top of the table.

Cynthia_sas_1-1588777078572.png

 

  You might like the look and feel of PROC REPORT better:

Cynthia_sas_0-1588777047172.png

 

  Here's the code for PROC REPORT vs the BOX approach with TABULATE:

proc tabulate data=sashelp.class;
class age name;
var Weight;
table age=' '*(name=' ' all='all name'*[style=[background=lightblue]]) all='all age', 
      Weight / box='Age and Name';
run;

proc report data=sashelp.class
  style(summary)=Header;
  column age name weight;
  define age / order style(column)=Header;
  define name / order style(column)=Header;
  define weight / sum;
  break after age/summarize;
  compute after age;
    name='Name Tot';
	line ' ';
  endcomp;
run;

Cynthia

 

View solution in original post

1 REPLY 1
Cynthia_sas
Diamond | Level 26

Hi:

  The best you can do with TABULATE is to move the row headers (Age/Name) up into the Box on the left side of the top of the table.

Cynthia_sas_1-1588777078572.png

 

  You might like the look and feel of PROC REPORT better:

Cynthia_sas_0-1588777047172.png

 

  Here's the code for PROC REPORT vs the BOX approach with TABULATE:

proc tabulate data=sashelp.class;
class age name;
var Weight;
table age=' '*(name=' ' all='all name'*[style=[background=lightblue]]) all='all age', 
      Weight / box='Age and Name';
run;

proc report data=sashelp.class
  style(summary)=Header;
  column age name weight;
  define age / order style(column)=Header;
  define name / order style(column)=Header;
  define weight / sum;
  break after age/summarize;
  compute after age;
    name='Name Tot';
	line ' ';
  endcomp;
run;

Cynthia

 

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 1 reply
  • 1535 views
  • 1 like
  • 2 in conversation