The following SAS code is submitted:
%macro houses(dsn = houses,sub = RANCH);
data &dsn;
set sasuser.houses;
if style = "&sub";
run;
%mend;
%houses(sub = SPLIT)
%houses(dsn = ranch)
%houses(sub = TWOSTORY)
Which one of the following is the value of the automatic macro variable SYSLAST?
A. work.ranch
B. work.houses
C. WORK.RANCH
D. WORK.HOUSES
It should be work.ranch but I have different answer in answer sheet.
It's WORK.HOUSES - the final macro call doesn't override the default data set name, it only overrides the default subset value so you have a data set called WORK.HOUSES only containing records where style="TWOSTORY".
It's WORK.HOUSES - the final macro call doesn't override the default data set name, it only overrides the default subset value so you have a data set called WORK.HOUSES only containing records where style="TWOSTORY".
And it is the upper case value because that's the way SAS considers all library, table and variable names since it is case insensitive generally.
Thanks ChrisBrooks and Ballardw. That is very helpful answer.
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.