BookmarkSubscribeRSS Feed
Defense
Obsidian | Level 7

I have a sas datsset create as below:

 

proc format;

value gender

1=male

2=femal;

run;

 

DATA have;

input group id sex ;

format sex gender.;

datalines;

1 133 1

3 134 1

;

run;

 

( sas dataset Have)

 

obs group   id    sex

 1   1      133   male

 2   3      134   male

 

Then I run proc report code as below:

 

proc report data=have; run;

 

The output upexpect as below(colum total):

group id   sex

4     267  femal

 

How can I fix this problem? it sounds because format

 

Thank

 

 

 

3 REPLIES 3
Cynthia_sas
Diamond | Level 26

Hi:
You do not have any define statements in your PROC REPORT code. GROUP and ID variables are numeric and by default, numeric variables have a usage of SUM. So you have values of 1 and 3 in for your two rows, and 1+3 = 4. You have values of 133 and 134 for ID and 133+134 = 267.

My suggestion is that you review the DEFINE statement. And, as an example of what you need to do, consider this code and output.

cynthia

 

report_usage_important.png

Defense
Obsidian | Level 7

Thanks

 

In my real datsset, there is one more character variable. I will try to use define/order optiom to see if it workd.

Ksharp
Super User


proc format;
value gender
1='male'
2='femal';
run;

 

DATA have;
input group id sex ;
format sex gender.;
datalines;
1 133 1
3 134 1
;
run;

proc report data=have nowd;
define group/display;
run;

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

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
  • 3 replies
  • 1393 views
  • 1 like
  • 3 in conversation