Hi,
I would be very grateful if someone could please help me with the following query. I have a macro variable that contains a string, but the expression contains variable names. In the example below, the macro variable contains an expression that refers to variables 'a' and 'b'. The dataset 'testdata' contains these variables. I would like to know how to set 'c' to be the numeric result of evaluating the macro variable 'test', so should equal 3.
%Let test = "a+b";
Data testdata;
a=1;
b=2;
c=???;
Run;
Many thanks,
Hoa
%Let test = a+b;
Data testdata;
a=1;
b=2;
c=&test.;
Run;
Remove quotes from the %let statement.
Replace ??? In datastep with &c.
At its basics consider macro variables as a Find/Replace algorithm. The result needs to be valid SAS code.
%Let test = a+b;
Data testdata;
a=1;
b=2;
c=&test.;
Run;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.