DATA Step, Macro, Functions and more

I am learning the macros,please solve this if you can

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 15
Accepted Solution

I am learning the macros,please solve this if you can

from a given date for ex. 1st nov 2013

1. assign the date in yyyy_mm format to a macro variable

2.Assign the date in MMM_YY foramt to a macro variable


Accepted Solutions
Solution
‎12-09-2013 11:54 AM
Occasional Contributor
Posts: 12

Re: I am learning the macros,please solve this if you can

Here it is.

data temp;

dt = today();

call symput('dt1', catx('_', year(dt), put(month(dt),2.)));

call symput('dt2', catx('_', substr(put(dt,date9.),3,3), substr(put(dt,date9.),8,2)));

run;

%put &dt1= &dt2=;


View solution in original post


All Replies
Trusted Advisor
Posts: 1,918

Re: I am learning the macros,please solve this if you can

Answer to #1: %let macrovar=2013_11;

Answer to #2: should be obvious from answer to #1

Solution
‎12-09-2013 11:54 AM
Occasional Contributor
Posts: 12

Re: I am learning the macros,please solve this if you can

Here it is.

data temp;

dt = today();

call symput('dt1', catx('_', year(dt), put(month(dt),2.)));

call symput('dt2', catx('_', substr(put(dt,date9.),3,3), substr(put(dt,date9.),8,2)));

run;

%put &dt1= &dt2=;


Occasional Contributor
Posts: 15

Re: I am learning the macros,please solve this if you can

Thanks for your reply,it is helpful for me, giving correct result

Respected Advisor
Posts: 3,799

Re: I am learning the macros,please solve this if you can

Maybe this is what you mean.  Your question is somewhat vague.

18         %let given=%sysevalf('1nov2013'd);
19        
20         %let a = %sysfunc(putn(&given,yymon));
21         %let b = %sysfunc(putn(&given,monyy));
22         %put NOTE: &=a &=b;
NOTE: A=2013NOV B=NOV13
🔒 This topic is solved and locked.

Need further help from the community? Please ask a new question.

Discussion stats
  • 4 replies
  • 214 views
  • 0 likes
  • 4 in conversation