Skip to content

Variable names in model formula

4 messages · Bill Venables, Duncan Murdoch, Thomas Lumley

#
At 10:37 PM 5/1/00 -0400, E. S. Venkatraman wrote:
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))
}
The above way is one.  A slightly more direct way would be to use some
column of the data frame on the right hand side:

for (i in 1:5) {
	survout <- coxph(Surv(time, status) ~ dataname[, i], dataname)
.....
}

There is a distinction between character strings and names.
.-.-
._._
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
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
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
#
On Tue, 2 May 2000, Bill Venables wrote:

            
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
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
#
On Tue, 02 May 2000 17:11:52 +1000, Bill Venables wrote in message
<3.0.32.20000502171151.0126c440 at pophost.nsw.cmis.csiro.au>:
I just discovered a nice way to do this in S-PLUS the other day; it
doesn't work in R 0.99, but I don't have version 1 installed on this
machine to check there.

The terms() function in S-PLUS returns an expression listing the terms
in a model formula.  It is nice to manipulate:

 formula(terms(somefit)[1]) gives the model formula using just the
first term,

 formula(terms(somefit)[-1]) gives the model formula leaving out the
first term, 

etc.

I don't know if copying this functionality would break anything (or
maybe it's already there in 1.x), but it seems to me like a nice
addition.

Duncan Murdoch
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
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
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
#
On Tue, 2 May 2000, Duncan Murdoch wrote:
I wrote this for the survival{4,5} packages, where it's used to hack apart
model formulas and meddle with the strata() and cluster() terms.  I think
there's just never been any call for it in the base package before now.

	-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
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._