On Mar 9, 2010, at 4:19 PM, Tim Smith wrote:

Hi,

I wanted to do the cox model using a matrix. The following lines illustrate what I want to do:
--------------------------------
dat <- matrix(rnorm(30), ncol=3,dimnames = list(1:10,letters[1:3]))
Survival <- rexp(10)
Status <- ifelse(runif(10) < .7, 1, 0)
mat <- as.data.frame(cbind(dat,Survival,Status))

cmod <- coxph(, mat)
---------------------------------
This works fine. However, I need to change the code so that the column headers ( a+b+c )are passed into the coxph function on the fly. What string/object do I need to generate so the function works? I am trying:

# For example
chead <- "a+b+c"

?as.formula

Perhaps:
as.formula(paste("Surv(Survival, Status) ~", chead))

Formula arguments are not just character strings. They have additional attributes.

> cmod <- coxph(as.formula(paste("Surv(Survival, Status) ~", chead)), mat)
> cmod
Call:
coxph(formula = as.formula(paste("Surv(Survival, Status) ~",
    chead)), data = mat)


    coef exp(coef) se(coef)      z    p
a -0.286     0.751    0.663 -0.431 0.67
b  0.161     1.174    0.705  0.228 0.82
c -0.330     0.719    1.307 -0.252 0.80

Likelihood ratio test=0.62  on 3 df, p=0.893  n= 10

cmod <- coxph(Surv(Survival, Status) ~ chead, mat)
but this gives an error since I'm passing in a string. Can I change chead to something so that the code works?
many thanks.


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.

Reply via email to