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
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.