Calling all macro idiot savants! 🙂 Thanks!
* Given the following...;
%let a=x;
%let b=y;
%let xy=12;
* Why does this yield '12'?;
%put &&&a&b;
* And this yields '12'?;
%let z=%scan(&a,1)%scan(&b,1);
%put &&&z;
* But this yields '&xy'? How do I make the ampersands apply to both scan results to yield '12'?;
%put &&&%scan(&a,1)%scan(&b,1);
If the last expression generates &xy, apply %unquote:
%put %unquote(... original expression ...);
If the last expression generates &xy, apply %unquote:
%put %unquote(... original expression ...);
Dang, your mama named you right, Astounding - worked like a charm!
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.