BookmarkSubscribeRSS Feed
Ronein
Meteorite | Level 14

Hello

I am using sashelp.class raw data in order to create a summary report.

I want to add categories in age varaible that are not in the raw data (will get values 0)

I also want o to add category of Sex variable that is not in the raw table (will get values 0)  

I want to use classdata option in proc tabulate in order to show categories with value 0.

The problem is that it is not working.

Any idea why?

Data level1;
input sex $1.;
cards;
F
M
T
;
Run;

proc format;
value $sex
"F"="Female"
"M"="Male"
"T"="Trans"
;
Run;

Data level2;
input age;
cards;
10
11
12
13
14
15
16
17
18
;
Run;

proc tabulate data=ashelp.class   classdata=level1   classdata=level2;
class sex age;
var height;
table sex=''  all='ALL',
 (age*N*f=8.  all='ALL'    age *height=''*mean*f=8.1  all='ALL');
Run;

 

 

5 REPLIES 5
Ronein
Meteorite | Level 14

Just to understand. Is Classdata option working only in a case that there is one variable???

Tom
Super User Tom
Super User

CLASSDATA option needs to be specified once and should be a dataset that has the set of combinations you want to force to appear.  So something like:

proc sql ;
create table classdata as
select *
from level1,level2
;
quit;
Ronein
Meteorite | Level 14

May you please show the full solution with classdata option ? (I understand that you created a table that has all required combinations of var sex and var age but it is still not working )

 

 

Cynthia_sas
SAS Super FREQ

Hi:

  You should have received a WARNING with the 2 CLASSDATA options and then another error in your code, as shown below:

tab_error.png

  However, you can generate the data for the CLASSDATA file a different way, as shown in the program below, which produces this result:

Result showing TAB code fixed using new CLASSDATA:

tab_good_results.png

 

Code to make classdata:

Data myclass;
length sex $1 age 8;
do sex = 'F', 'M', 'T';
  do age = 10 to 18 by 1;
     output;
  end;
end;
Run;

proc format;
value $sex
"F"="Female"
"M"="Male"
"T"="Trans"
;
Run;
 

 

Hope this helps,

Cynthia

sas-innovate-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 5 replies
  • 603 views
  • 0 likes
  • 3 in conversation