0
covariates <- c("Age", "Gender",  "Smoking", ...etc)
univ_formulas <- sapply(covariates,
                        function(x) as.formula(paste('Surv(Time, Status)~', x)))

univ_models <- lapply(univ_formulas, function(x){coxph(x, data = d)})

univ_models

# Extract data # 

univ_results2 <- lapply(univ_models,
                       function(x){ 
                         x <- summary(x)
                         p.value<-signif(x$wald["pvalue"], digits=4)
                         wald.test<-signif(x$wald["test"], digits=4)
                         beta<-signif(x$coef[1], digits=2);#coeficient beta
                         HR <-signif(x$coef[2], digits=2);#exp(beta)
                         HR.confint.lower <- signif(x$conf.int[,"lower .95"], 4)
                         HR.confint.upper <- signif(x$conf.int[,"upper .95"],4)
                         HR <- paste0(HR, " (", 
                                      HR.confint.lower, "-", HR.confint.upper, ")")
                         res<-c(beta, HR, wald.test, p.value)
                         names(res)<-c("beta", "HR (95% CI for HR)", "wald.test", 
                                       "p.value")
                         return(res)
                         #return(exp(cbind(coef(x),confint(x))))
                       })
res <- t(as.data.frame(univ_results, check.names = FALSE))
as.data.frame(res)

我想将我的单变量 cox 回归分析 (univ_models) 中的数据提取到数据框中,但我不断收到错误消息“h(simpleError(msg, call)) 中的错误:在选择一个函数't'的方法:参数暗示不同的行数:4、5'

我认为这是因为我的一个变量是一个具有 3 个级别的因子,因为当我将此变量编码为数字时,这个脚本可以工作。你能告诉我我做错了什么吗?谢谢。

4

0 回答 0