BookmarkSubscribeRSS Feed
UserSAS7
Calcite | Level 5

Hi all,
For my data, in Proc Report, I am trying to calculate row percentages in an across variable, for grouped data. I am using the following code and for all observations, it is generating right result except for one where only _c2 is 0. I am unable to figure out why it is happening that way.

proc report data= mydata;
columns ('Heading1' label) 
classval,(n pct) ("Mean Rating" varval) ("N" all);
define label / group " ";
define classval / across order=formatted "Rating" format=rating. ;
define n /  "count" ;
define pct / computed  "%"  format=percent9.2;
define varval / mean " " format=8.2;
define all / computed " "  format=8.;
compute pct;
  _c3_ = _c2_ /(_c2_ + _c4_ + _c6_ + _c8_ );
_c5_ = _c4_ /(_c2_ + _c4_ + _c6_ + _c8_ );
_c7_ = _c6_ /(_c2_ + _c4_ + _c6_ + _c8_ );
_c9_ = _c8_ /(_c2_ + _c4_ + _c6_ + _c8_ ); 
endcomp;
compute all;
all = _c2_ + _c4_ + _c6_ + _c8_ ;
endcomp;
run;

Output :
Heading1112233
 count%count%count%count%meanN
observation13735.58%3129.81%2120.19%1514.42%2.13104
observation22120.19%3129.81%3129.81%2120.19%2.5104
observation32019.42%3231.07%3332.04%1817.48%2.48103
observation41211.65%2928.16%4038.83%2221.36%2.7103
observation5001005303903.280
observation698.82%1615.69%5049.02%2726.47%2.93102
observation743.85%2423.08%4139.42%3533.65%3.03104
observation81918.45%2928.16%3130.10%2423.30%2.58103
observation91716.50%2928.16%3433.01%2322.33%2.61103
3 REPLIES 3
UserSAS7
Calcite | Level 5

I reset the options missing=. and used sum() instead of + 
I am getting correct results now.

Thanks for the help!

Kurt_Bremser
Super User
options missing=0;

does not change any values, it only changes how they are displayed. Therefore the simple addition will still result in missing values also, and that's why you need to use the SUM function.

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
  • 3 replies
  • 362 views
  • 0 likes
  • 2 in conversation