[R] Variable names in model formula

Thomas Lumley thomas at biostat.washington.edu
Tue May 2 17:16:17 CEST 2000


On Tue, 2 May 2000, Bill Venables wrote:

> At 10:37 PM 5/1/00 -0400, E. S. Venkatraman wrote:
> >I have the following problem.  I have survival data (time, status) along
> >with several covariates (X1, X2,..., Xn).  I want to fit a Cox model for
> >each of the covariate (univariately) and obtain the fitted probability of
> >survival at a fixed time point t0 and covariate value Xi0.  I tried to do
> >this in a for loop where the index is the variable name as follows
> >
> >covnames <- names(...)
> >for (covi in covnames) {
> >  survout <- coxph(Surv(time,status) ~ covi, data = dataname)
> >  print(summary(survfit(survout,newdata),t0))
> >}
> 
> You could try
> 
> covnames <- names(...)
> form <- Surv(time, status) ~ dummy
> for(nam in covnames) {
> 	form[[3]] <- as.name(nam)
> 	survout <- coxph(form, data = dataname)
> 	print(summary(survfit(survout, newdata), t0))
> }

A related idea, which doesn't require you to know the structure of formula
object, but will be slower, is

covnames <- names(...)
for(nam in covnames) {
	form<-substitute(Surv(time,status)~dummy,list(dummy=nam))
	survout<-coxph(form,data=dataname)
	print(summary(survfit(survout, newdata), t0))
}

This method also works if you want to loop over different time and status
variables.

	-thomas

Thomas Lumley
Assistant Professor, Biostatistics
University of Washington, Seattle

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list