/** following macro runs logistic regression and outputs the results from only the relevant variables to the html file. In this case, I am running regression with various variables but keeping age in all the models. Age is not the variable of interest. */
%macro jncht(dataname,var1);
title "Age and sex adjusted &var1";
ods select OddsRatio ParameterEstimates;
proc logistic data=&dataname ;
model jncht=&var1 ahage ahsex ;
ods output OddsRatios=orrr;
ods output ParameterEstimates=Param;
run;
data param;
set param;
drop DF Estimate StdErr;
run;
proc sort;
by variable;
data orrr;
set orrr;
variable=effect;
drop effect;
proc sort;
by variable;
run;
data new;
merge param orrr;
by variable;
run;
%let cuts=%SUBSTR(&var1,1,4);
ods html select all;
title " age and sex adjusted &var1";
proc print data=new;
var variable OddsRatioEst LowerCL UpperCL ProbChiSq;
where variable like "%NRBQUOTE(%)&cuts%NRBQUOTE(%)";
run;
ods html exclude all;
proc datasets;
delete param orrr new;
%mend ;
Invocation of this macro.
/*include the following statement in the beginning of the program*/
ods html file ="%sysfunc
(reverse(%sysfunc(substr(%sysfunc(reverse(%sysfunc(reverse(%scan(%sysfunc(reverse(%sysfunc(getoption(sysin)))),1,/))))),5)))).html"
STYLE=MINIMAL;
data...;
.
.
.;
%jncht(trott1,&wstci_)
/*Where &wstci_ is a macro variable and equals 'wstci1 wstci2 wstci3'. */
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment