DATA Step, Macro, Functions and more

Using a Macro Variable inside a proc export

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 5
Accepted Solution

Using a Macro Variable inside a proc export

I am trying to create a sequence number to be placed at the end of a file name for a proc export.

Work.seq_nbr will contain the number I want to start with and then the datastep increment will increment that number by one and put a leading zero before it.  If the seq_nbr starts off at say 270 then I want 0271 to be &seq_nbr_pad in my proc export.

I just can't figure out how to make it a macro variable in my datastep or I need help in finding a way to do this.

 

data increment(keep=seq_nbr_pad);

length seq_nbr_txt $ 4 seq_nbr_pad $ 4;

set work.seq_nbr;

/* read charvar as number, then format with leading zeroes */

/* then put result into padded */

seq_nbr = seq_nbr+1;

seq_nbr_txt = put(seq_nbr,4.);

seq_nbr_pad = put(input(seq_nbr_txt,best4.),z4.);

%let seq_nbr=seq_nbr_pad;

run;

PROC EXPORT

DATA=increment

OUTFILE="\\Home1\userid\GMF_&SEQ_NBR_PAD..csv"

DBMS=CSV REPLACE;

RUN;


Accepted Solutions
Solution
‎06-21-2017 02:58 PM
Super User
Posts: 5,516

Re: Using a Macro Variable inside a proc export

%LET can't be part of a DATA step.  Here's an alternative method to create your macro variable:

 

data _null_;

set work.seq_nbr (keep=seq_nbr);

call symput('seq_nbr_pad', put(seq_nbr+1, z4.));

run;

View solution in original post


All Replies
Solution
‎06-21-2017 02:58 PM
Super User
Posts: 5,516

Re: Using a Macro Variable inside a proc export

%LET can't be part of a DATA step.  Here's an alternative method to create your macro variable:

 

data _null_;

set work.seq_nbr (keep=seq_nbr);

call symput('seq_nbr_pad', put(seq_nbr+1, z4.));

run;

Occasional Contributor
Posts: 5

Re: Using a Macro Variable inside a proc export

Posted in reply to Astounding

Works perfectly.  Thank you so much.

Super User
Posts: 11,343

Re: Using a Macro Variable inside a proc export

Are you actually going to export the exact same data set to multiple files? Unless you change your Increment data set that will be the likely effect.

☑ This topic is solved.

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

Discussion stats
  • 3 replies
  • 161 views
  • 0 likes
  • 3 in conversation