Dear SAS users,
I am a beginner user to SAS macros. I would like to start with simple %let statements. Below is my data step with the %let. Please advise as to how I can fix the error. The error message from sas is below the data step.
Thank you! let
%let group=1;
data s&group_1; (dataset name should be called s1_1)
set s&group_2; (dataset name should be called s1_2)
run;
924 %let group=1;
WARNING: Apparent symbolic reference GROUP_1 not resolved.
925 data s&group_1;
-
22
200
ERROR 22-322: Syntax error, expecting one of the following: a name, a quoted string, (, /, ;,
_DATA_, _LAST_, _NULL_.
ERROR 200-322: The symbol is not recognized and will be ignored.
change
data s&group_1;
to
data s&group._1;
Macro variable resolves in the unit called 'token'. There are some default boundaries for tokens, but '_' was not one of them, macro processor will try to resolve 'group_1' instead of 'group'.So you need to manually add in your boundaries to define your token, namely '.'
Try this:
%let group=1;
data s&group._1; (dataset name should be called s1_1)
set s&group._2; (dataset name should be called s1_2)
run;
Regards,
Haikuo
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.