Hi,
I have 3 variables (a,b,c) for which I want to do calulate n, mean and median and then output the result.
Here is the code and the "want" output:
proc means data=have n mean median ;
var a b c ;
output out = want ;
run;
type | freq | statistic | a | b | c |
n | |||||
min | |||||
max | |||||
mean | |||||
std |
Since I want the n, mean and media I do the following adjustment:
proc means data=have n mean median ;
var a b c ;
output out = want n=n mean=mean median=median ;
run;
But here the "want" output table is of the following form:
type | freq | n | mean | median |
here the n, mean and median become columns and I get only 1 row corresponding to variable a, statistics for variables b and c simply don't show.
So is it possible to have the original form of output but for the chosen statistics, so that the "want" output table looks like this:
type | freq | statistic | a | b | c |
n | |||||
mean | |||||
median |
Thank you!
3) proc univariate data=have outtable=want noprint; var a b c; run;
Try the ODS table and Google STACKODS option.
Switching to PROC TABULATE will make a lot of this easy:
proc tabulate data=have;
var a b c;
tables n mean median, a b c;
run;
See if it comes close enough. You might want to add NMISS to the list of statistics, since you are no longer getting _FREQ_. It's not clear why you would want _TYPE_ at all, so that part is not included.
3) proc univariate data=have outtable=want noprint; var a b c; run;
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
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.