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 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

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
  • 1544 views
  • 0 likes
  • 2 in conversation