BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
robertrao
Quartz | Level 8

Hi Team,

I wrote a macro and I feel it needs to be tiday. Too many dataset names. Could anybody help me look tidy.

Thanks

%macro age(dname1=,dname2=,dname3=,dname4=,dname5=);

proc means data=&dname1 nway noprint;
var age;
output out=&dname2 n= mean= std= median= min= max=/autoname;
run;

data &dname3;
set &dname2;
keep n meansd median minmax;
n=put(age_N,4.);
meansd=put(age_Mean,4.1)|| " ("||put(age_StdDev,4.1)||" )";
median=put(age_Median,4.1);
minmax=put(age_Min,4.1)  ||"/"|| put(age_Max,4.1);
run;

proc transpose data=&dname3 out=&dname4;
var n meansd median minmax;
run;

data &dname5(drop=_name_);
set &dname4;
stat=put(_name_,$age.);
label="Age (Years)";
run;
%mend;
%age(dname1=one,dname2=two,dname3=three,dname4=four,dname5=five);

1 ACCEPTED SOLUTION

Accepted Solutions
art297
Opal | Level 21

Karun,

My first question would be "Do you really need to write this as a SAS macro?"  As written, it appears to be quite specific (i.e., not reusable for future tasks) and could easily be done outside of the macro language.

Second, for any code (in or out of macroland), you really should make use of indentation.

Third, do you need all five files or can one or more of them be re-used?

Art

View solution in original post

3 REPLIES 3
robertrao
Quartz | Level 8

Sorry...... i meant TIDY

art297
Opal | Level 21

Karun,

My first question would be "Do you really need to write this as a SAS macro?"  As written, it appears to be quite specific (i.e., not reusable for future tasks) and could easily be done outside of the macro language.

Second, for any code (in or out of macroland), you really should make use of indentation.

Third, do you need all five files or can one or more of them be re-used?

Art

robertrao
Quartz | Level 8

Hi Arthur,

There are 5 datasets which goes seperately into dname1(sorry for just putting only a part of my code here)

So I get to reuse it 5 times

Thanks

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!

What is ANOVA?

ANOVA, or Analysis Of Variance, is used to compare the averages or means of two or more populations to better understand how they differ. Watch this tutorial for more.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 3 replies
  • 1392 views
  • 0 likes
  • 2 in conversation