SAS Programming

DATA Step, Macro, Functions and more
BookmarkSubscribeRSS Feed
Nini
Calcite | Level 5
I have a number of variables showing time in minutes, each with many observations. I need to show each of the variables as a percentage of the total.I think I need to use proc tabulate but am new to SAS. Can someone help?
4 REPLIES 4
Reeza
Super User

I don't think PROC TABULATE will do what you want with multiple variables. 

I think you'll need multiple steps, likely a PROC MEANS and a FREQ or a DATA STEP.

 

Either way, for more assistance please post sample data and your expected output. 

Don't post images as sample data, that would mean we have to type it out 😞

 


@Nini wrote:
I have a number of variables showing time in minutes, each with many observations. I need to show each of the variables as a percentage of the total.I think I need to use proc tabulate but am new to SAS. Can someone help?

 

Shmuel
Garnet | Level 18

Can you post a sample of your dataset and in what format you want the report  ?

Nini
Calcite | Level 5

Thanks all,

 

here is a sample of my data

 

Outdoor  Leisure  Team  Domestic  Walk  Cycle  Total

  0                0         15          20           0        0          35

  0               10          0          10           5        0          25

  35              0          50          0            15      0          85

 

I just want to show how each of the variables contributes to the total something like below

 

Outdoor  25%

Leisure    10%

Team       15%

Domestic   5%

Walk        15%

Cycle        30%

Total       100%

 

 

Ksharp
Super User

It is very easy for IML .

 

 

data have;
input Outdoor  Leisure  Team  Domestic  Walk  Cycle  Total ;
cards;
  0                0         15          20           0        0          35
  0               10          0          10           5        0          25
  35              0          50          0            15      0          85
;
run;

proc iml;
use have;
read all var _num_ into x[c=vname];
close;

ratio=t(x[+,]/sum(x[,ncol(x)]));

print (t(vname)) ratio[f=percent8.2];
quit;

 

 

 

sas-innovate-wordmark-2025-midnight.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


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
  • 4 replies
  • 974 views
  • 0 likes
  • 4 in conversation