首先,我从这个链接Applying a function to multiple columns中了解到,使用" function“函数可能会做我想要的事情。然而,我还没能从以现在的方式去思考它,到让它在我的情况下真正发挥作用(甚至真正知道从哪里开始)。我是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分析的结果。
谢谢!**编辑:我刚刚修复了错误,我需要使用列号--我想不是名字。更改反映在上面的代码中。然而,它仍然运行选择的变量作为多变量分析,而不是作为真正的单变量分析。
发布于 2015-09-24 08:10:08
如果您想要走公式路线(在您的情况下,多个结果和多个变量可能是最实际的方法),那么您需要为您想要适应的模型创建一个公式。我在这里分了一些步骤(制作公式、建立模型和提取数据),它们可以偏离轨道--这使您可以检查所有模型。
#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))))})https://stackoverflow.com/questions/32755072
复制相似问题