*****************************************************************; *** Macro to conduct analyses and produce results *; *****************************************************************; %MACRO w2anal1 (datain,group,outfile,vname); PROC MIXED DATA=&datain; CLASS id ; MODEL &vname=t interv statin_t int_stat/solution; RANDOM id; ODS OUTPUT COVPARMS=cp ; ODS OUTPUT SOLUTIONF=est; TITLE2 "Table 1. Overall Mixed model analysis"; RUN; **********************************************; *** Summarize Covariance Estimates *; **********************************************; PROC PRINT DATA=cp; TITLE4 "Covariance Estimates"; RUN; PROC TRANSPOSE DATA=cp OUT=cpt (RENAME=(v1=id_v v2=resid_v) DROP=_NAME_) PREFIX=v; VAR estimate; RUN; PROC PRINT DATA=cpt (OBS=4) NOOBS; RUN; **********************************************; **** Summarize parameter estimates *; **********************************************; PROC PRINT DATA=est; TITLE4 "Estimates of effects"; RUN; PROC TRANSPOSE DATA=est OUT=est1 (RENAME=(v1=b v2=t v3=int v4=statin v5=st_int) DROP=_NAME_) PREFIX=v; VAR estimate; RUN; PROC TRANSPOSE DATA=est OUT=est2 (RENAME=(v1=b_se v2=t_se v3=int_se v4=statin_se v5=st_int_se) DROP=_NAME_) PREFIX=v; VAR stderr; RUN; PROC TRANSPOSE DATA=est OUT=est3 (RENAME=(v1=n) DROP=_NAME_ v2-v5) PREFIX=v; VAR df; RUN; PROC TRANSPOSE DATA=est OUT=est4 (RENAME=(v1=b_p v2=t_p v3=int_p v4=statin_p v5=st_int_p) DROP=_NAME_) PREFIX=v; VAR probt; RUN; DATA estc (DROP=_LABEL_ n); MERGE est1 est2 est3 est4; nsub=n+1; PROC PRINT DATA=estc; RUN; DATA e2; MERGE cpt estc; RUN; PROC PRINT DATA=e2; RUN; **************************************************; *** Create Output in two rows of a table *; **************************************************; DATA _NULL_; SET e2; FILE &outfile MOD; PUT @1 "&group" @12 nsub 3.0 @16 id_v 5.0 @26 resid_v 5.0 @36 b 5.1 @41 "(" @42 b_se 4.2 ")" @50 t 5.1 @55 "(" @56 t_se 4.2 ")" @62 int 5.1 @67 "(" @68 int_se 4.2 ")" @76 statin 5.1 @81 "(" @82 statin_se 4.2 ")" @90 st_int 5.1 @95 "(" @96 st_int_se 4.2 ")"/ @52 "(" @53 t_p 6.4 ")" @64 "(" @65 int_p 6.4 ")" @78 "(" @79 statin_p 6.4 ")" @92 "(" @93 st_int_p 6.4 ")"//; RUN; %MEND;