DATA Step, Macro, Functions and more

referencing a variable from another dataset in a macro

Accepted Solution Solved
Reply
Contributor
Posts: 23
Accepted Solution

referencing a variable from another dataset in a macro

I have a macro that looks like this:

 

%macro csv(chart);

data want;
set have;
where chart_code = "&chart.";
run;

%mend csv(chart);

 

The macro works when I input a value into chart. However I want to run this macro through the chart_code variable from a data set that looks like this:

Chart_code

test13
test3
test4
test6
test9

etc

 

i.e run the macro through test13, test 3 and so on.


Accepted Solutions
Solution
Thursday
Super User
Posts: 9,886

Re: referencing a variable from another dataset in a macro

Use call execute():

data _null_;
set control_dataset;
call execute('%csv(' !! strip(chart_code) !! ');');
run;

Note the use of single quotes to prevent premature resolution of the macro. If the macro contains macro statements, use %nrstr( to mask the macro trigger so that the execution of the macro is delayed until the contained data/proc step code can execute.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
How to convert datasets to data steps
How to post code

View solution in original post


All Replies
Solution
Thursday
Super User
Posts: 9,886

Re: referencing a variable from another dataset in a macro

Use call execute():

data _null_;
set control_dataset;
call execute('%csv(' !! strip(chart_code) !! ');');
run;

Note the use of single quotes to prevent premature resolution of the macro. If the macro contains macro statements, use %nrstr( to mask the macro trigger so that the execution of the macro is delayed until the contained data/proc step code can execute.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
How to convert datasets to data steps
How to post code
☑ This topic is solved.

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

Discussion stats
  • 1 reply
  • 76 views
  • 0 likes
  • 2 in conversation