首先,我从这个链接Applying a function to multiple columns收集了使用&#34;功能&#34;功能可能会做我想要的。然而,我无法通过考虑它的方式来实现这一目标,以使其在我的情况下实际工作(或者甚至真正知道从哪里开始)。我是R的初学者,所以我提前道歉,如果这是一个真正的&#34; newb&#34;题。我的数据是一个数据框,包括事件变量(肿瘤复发)和时间变量(随访时间/复发时间)以及复发风险因素(t阶段,肿瘤大小,dx年龄等)。一些风险因素是绝对的,一些是连续的。我一直在手动运行我的单变量分析,一次一个像这个例子univariateageatdx&lt; -coxph(survobj~soldx),然后收集数据。这对于多个因素而言非常繁琐,并且针对几种不同的递归类型执行此操作。我认为必须有一种编码方式,以便我基本上可以有一行具有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分析的结果。
谢谢! **编辑:我刚修复错误,我需要使用列号,我想不是名字。更改将反映在上面的代码中。但是,它仍然运行选择作为多变量分析的变量而不是真正的单变量分析......
答案 0 :(得分: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))))})