%macro break(byval);
data work.age_&byval;
set work.sorted(where=(age=&byval));
run;
%mend;
proc sort data=sashelp.class out=work.sorted;
by age;
run;
options mprint;
data _null_;
set work.sorted;
by age;
if first.age then call execute('%break('||age||')');
run;
concatenation
Sorry I don't understand why there is concatenation here. The files are produced as age_11, age_12...
It is concatenating the string that is being sent. In short, it is submitting:
%break(16)
which will run the macro with the variable's value
Can I ask how '||age||' became the value of the variable?
Thanks for help.
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.