I'm looking for a way using macros to deal with a bunch of mixed models...the task is very similar to selection in linear regression:
the first model is: score = var1,
code is like that
PROC MIXED data=model METHOD=ML COVTEST;
CLASS group;
MODEL score = var1/SOLUTION;
RANDOM INTERCEPT /SUB=ID TYPE=UN G;
run;
then it's score = var1 var2, then score = var1 var2 var3... I have up to 7 variables in all, and the criteria is log rank test.
Thanks!
Try next code:
%macro run_model(modl , vars=v1 v2 v3 v4 ... ); /* define as many as need variables */
%let n = %sysfunc(countw(&vars));
%do i=1 %to &n;
%let pos=%sysfunc(findw(&vars, %scan(&vars,&n)));
%let len = %eval(&pos + %length(%scan(&vars,&n));
PROC MIXED data=&modl METHOD=ML COVTEST;
CLASS group;
MODEL score = %substr(&vars,1,&len)/SOLUTION;
RANDOM INTERCEPT /SUB=ID TYPE=UN G;
run;
%end;
%mend run_model;
%run_model(model,vars=var1 var2 var3);
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.