2

首先,我从这个链接中收集到Applying a function to multiple columns使用“功能”功能可能会做我正在寻找的东西。然而,我一直无法从以呈现的方式思考它到让它在我的情况下真正发挥作用(或者甚至不知道从哪里开始)。我是 R 的初学者,所以如果这是一个真正的“新手”问题,我提前道歉。我的数据是一个数据框,由一个事件变量(肿瘤复发)和一个时间变量(随访时间/复发时间)以及复发风险因素(t 分期、肿瘤大小、dx 年龄等)组成。有些风险因素是分类的,有些是连续的。我一直在手动运行我的单变量分析,一次一个,就像这个例子 univariateageatdx<-coxph(survobj~agedx),然后收集数据。这对于多种因素和针对几种不同的重复类型都非常乏味。我认为必须有一种编码方式,这样我基本上可以拥有一行代码,其中包含 coxph 方程,然后将其应用于我所有感兴趣的变量,并吐出一个结果,该结果具有每个因素的单变量分析结果。我尝试使用 cbind 绑定变量(即x<-cbind("agedx","tumor size")然后运行 ​​cox coxph(recurrencesurvobj~x),但这当然只是对这些变量进行了多变量分析,并没有将它们拆分为真正的单变量分析。

我还根据在不同站点上发现的类似问题尝试了以下代码,但它给出了显示的错误,我不知道该怎么做。这是在正确的轨道上吗?

f <- as.formula(paste('regionalsurvobj ~', paste(colnames(nodcistradmasvssubcutmasR)[6-9], collapse='+')))

然后我运行它有 coxph(f) 给我一个多元 cox 分析的结果。

谢谢!**编辑:我刚刚修复了错误,我需要使用列号,我想不是名称。更改反映在上面的代码中。但是,它仍然运行选择为多变量分析而不是真正的单变量分析的变量......

4

1 回答 1

3

如果您想走公式路线(在您的情况下,有多个结果和多个变量可能是最实用的方法),您需要为每个要拟合的模型创建一个公式。我将这里的步骤进行了一些拆分(制作公式、制作模型和提取数据),当然可以将它们组合起来,这样您就可以检查所有模型。

#example using transplant data from survival package
#make new event-variable: death  or no death
#to have dichot outcome
transplant$death <- transplant$event=="death"

#making formulas
univ_formulas <- sapply(c("age","sex","abo"),function(x)as.formula(paste('Surv(futime,death)~',x))
)
#making a list of models
univ_models <- lapply(univ_formulas, function(x){coxph(x,data=transplant)})

#extract data (here I've gone for HR and confint)
univ_results <- lapply(univ_models,function(x){return(exp(cbind(coef(x),confint(x))))})
于 2015-09-24T08:10:08.813 回答