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;
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
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.
Ready to level-up your skills? Choose your own adventure.