Skip to content

Question about survdiff in for-loop.

3 messages · Thomas Lumley, Sando

#
Hi everyone!!

I have dataset composed of a numbers of survival analyses. 
( for batch survival analyses by using for-loop) . 
Here are code !!

#######
dim(svsv)
Num_t<-dim(svsv)
Num<-Num_t[2]   # These are predictors !!

names=colnames(svsv)

for (i in 1:Num  )
{
name_tt=names[i]
survdiff(Surv(survival.m, survival) ~ names[i], data=svsv)
fit.Group<-survfit(Surv(survival.m, survival) ~ names[i] , data=svsv)
plot(fit.Group, col=2:1, xlab="Survival", ylab="Prob")
}

#####

names[i] is not working in the survdiff. 
According to help R , the predictor must be single subset. 

And, names[i] is also single character, I think. 

But, it do NOT work. 

How I can solve this problem ? 



Thank you. 

 




--
View this message in context: http://r.789695.n4.nabble.com/Question-about-survdiff-in-for-loop-tp4646707.html
Sent from the R help mailing list archive at Nabble.com.
#
On Fri, Oct 19, 2012 at 8:02 PM, Sando <chocosando at daum.net> wrote:
That's a problem with how formulas are parsed: you are effectively
telling survdiff() that you want names[i] as your predictor variable,
when actually you want it as the name of your predictor variable.

Using svsv[i] rather than names[i] should work.  Or you can insert the
value of names[i] into the formula with

 survdiff(eval(bquote(Surv(survival.m, survival) ~ .(names[i]))), data=svsv)

Even after you fix that, there's another problem, which is that your
code doesn't actually use the result from survdiff() in any way.

  -thomas