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

Hello

Let's say that a user define  a parameter

%let mon=1804;

(meaning April 2018)

 

I want that SAS will create automatically a new parameter called tar that get value  '30APR2017'd (end of month after deduct 12 months from mon parameter)

How can I do it?

 

 

Thanks

Ronein

1 ACCEPTED SOLUTION

Accepted Solutions
FredrikE
Rhodochrosite | Level 12
%let mon = 1804;

data out;
 format tar yymmdd10.;
 tar = intnx('month',input("&mon",yymmn4.),-12,'end');
run;

🙂

 

//Fredrik

View solution in original post

2 REPLIES 2
FredrikE
Rhodochrosite | Level 12
%let mon = 1804;

data out;
 format tar yymmdd10.;
 tar = intnx('month',input("&mon",yymmn4.),-12,'end');
run;

🙂

 

//Fredrik

RW9
Diamond | Level 26 RW9
Diamond | Level 26

The question is why you need two macro variables for this.  You have stated you have one macro variable with a timepoint, and you know the logic to get end of month date from that, so why store that second one in a macro variable, just apply the logic where you need it.

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 1185 views
  • 1 like
  • 3 in conversation