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?
Can you post a sample of your dataset and in what format you want the report ?
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%
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;
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.