Hello, Dear all:
I am running multiple cox hazard models for 8 different outcomes. In the end, I only want to get 8 result tables with beta estimate, HR ratio with CI and P value for each variable in the model. I follow the online codes and I almost can see it but I can't output from function. When I type "res", the error will say there is no such object. I know I can't output data.frame. but don't know how to make it right....
thanks a lot!
#In the formula dataset, there are 8 formula listed there.
models_res <- lapply(mod_formula, function(x){coxph(x, data = df_mod1)})
results <- lapply(models_res,
function(x){
x0 <- summary(x);
pval<-signif(x0$coef[,5], digits=2);
beta<-signif(x0$coef[,1], digits=2);#coeficient beta
HR <-signif(x0$coef[,2], digits=3);#exp(beta)
HR.confint.lower <- signif(x0$conf.int[,"lower .95"],3)
HR.confint.upper <- signif(x0$conf.int[,"upper .95"],3)
HR1 <- paste0(HR, " (",
HR.confint.lower, "-", HR.confint.upper, ")")
res<-data.frame(beta,HR1,pval)
names(res)<-c("beta", "HR (95% CI for HR)", "p.value")
print(res)
return(res)
})
/**************/
beta HR (95% CI for HR) p.value
age 0.059 1.06 (1.06-1.06) 7.1e-266
sexMALE 0.370 1.45 (1.35-1.56) 1.0e-25
eGFRcateeGFRcate2:-5<=-3 -0.470 0.628 (0.554-0.711) 2.4e-13
eGFRcateeGFRcate3:-3<=-1 -0.640 0.527 (0.471-0.588) 6.8e-30
eGFRcateeGFRcate4:1<=3 -0.600 0.548 (0.482-0.622) 2.2e-20
eGFRcateeGFRcate5:3+ 0.120 1.13 (1.02-1.24) 1.6e-02
eGFRcateRef -0.730 0.483 (0.432-0.54) 1.7e-37