Hi,
I would like to write a macro to merge more than 2 data sets (100 datasets to be exact), keeping only log-likelihood values in one column. Rather than type the name of every data set I tried the following code:
%macro merge (n=100);
%Do i= 1 %TO &n;
%LET j=%EVAL(&i+1);
data LogLall;
set LogL&i LogL&j;
keep Log_Likelihood;
run;
%END;
%MEND;
%merge;
The issue is only the final two datasets' values get saved to the new dataset. I want the final dataset to look as follows, but with 100 observations.
Any ideas how to save more than 2 datasets to the same file?
Thanks!
Have you tried it without macros?
data LogLall;
set LogL1-LogL100;
keep Log_Likelihood;
run;
The only reason to add macro language would be to move the KEEP statement to the SET statement, along these lines:
set LogL1 (keep=Log_Likelihood) LogL2 (keep=Log_Likelihood) ... LogL100 (keep=Log_Likelihood);
Have you tried it without macros?
data LogLall;
set LogL1-LogL100;
keep Log_Likelihood;
run;
The only reason to add macro language would be to move the KEEP statement to the SET statement, along these lines:
set LogL1 (keep=Log_Likelihood) LogL2 (keep=Log_Likelihood) ... LogL100 (keep=Log_Likelihood);
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.