On Aug 11, 2010, at 1:53 PM, Mendolia, Franco wrote:
I could do that. However, the function f that I mentioned below is
part of a bigger program and is nested inside another function, say
function A. In function A I determine the covariates that I want to
use and then call my function f. So even if I use a formula as
single argument, I would still need to construct the formula with
the arbitrary number of covariates which then leads to my original
problem.
Your original example does not lend itself well to testing a
demonstration but you can make a formula along these lines;
form <- formula(paste("Surv(", time, event, ") ~",
paste(covar, collapse="+"),
"+strata(", stratum, ")",
sep=" ") ) )
coxph(form, data=dfrm)
I'm not claiming it will work properly with attach()ed dataframes. I
consider the attach function (at least as used with data objects) to
be a device of the Devil.
--
David.
________________________________________
From: Erik Iverson [er...@ccbr.umn.edu]
Sent: Wednesday, August 11, 2010 12:00 PM
To: Mendolia, Franco
Cc: r-help@r-project.org
Subject: Re: [R] Arbitrary number of covariates in a formula
Are you for some reason against writing your function to accept a
single
argument, a formula, that you simply pass on to coxph?
Mendolia, Franco wrote:
Hello!
I have something like this:
test1 <- data.frame(intx=c(4,3,1,1,2,2,3),
status=c(1,1,1,0,1,1,0),
x1=c(0,2,1,1,1,0,0),
x2=c(1,1,0,0,2,2,0),
sex=c(0,0,0,0,1,1,1))
and I can easily fit a cox model:
library(survival)
coxph(Surv(intx,status) ~ x1 + x2 + strata(sex),test1)
However, I want to write my own function, fit the model inside this
function and then do some further computations.
f <- function(time, event, stratum, covar )
{
fit <- coxph(Surv(time,event) ~ covar[[1]] + covar[[2]] +
strata(stratum))
fit
#... do some other stuff
}
attach(test1)
f(intx, status, sex, list(x1,x2))
This works fine when I have exactly two covariates. However, I
would like to have something that I can use with an arbitrary
number of covariates. More precisely, I need something more general
than covar[[1]] + covar[[2]].
Any ideas?
Thanks,
Franco
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
David Winsemius, MD
West Hartford, CT
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.