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 个级别的因子,因为当我将此变量编码为数字时,这个脚本可以工作。你能告诉我我做错了什么吗?谢谢。