I have macro which creates multiple datasets and not always the same datasets are created. How can I keep only existing datasets names into a SAS variable and SET all of them together?
For example:
Data A;
A=1;
Run;
Data C;
C=1;
Run;
/*Here we will have an error as the dataset B does not exist*/
DATA All_Data;
Set a b c;
run;
/*My idea was storage all the existing datasets (A and C) and do something like this*/
DATA All_Data;
Set &existing_datasets.;
run;
How do I read the existing datasets and store their names into a variable?
Thanks in advance.
Or use a naming convention. Name all your temporary datasets with _CombinedA, _CombinedB etc
Then when you’re trying to combine the data you can use the wildcard : to set the data.
data want;
set _combined: ;
run;
query dictionary tables into maco var and call the macrovar in set statements- your safe bet
proc sql;
select memname into :dsnlist separated by ' '
from sashelp.vtable /*or dictionary.tables*/
where libname='YOUR_LIBNAME';/*your lib where the datasets are stored */
quit;
data want;
set &dsnlist;
run;
Or use a naming convention. Name all your temporary datasets with _CombinedA, _CombinedB etc
Then when you’re trying to combine the data you can use the wildcard : to set the data.
data want;
set _combined: ;
run;
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.