[R] using newdata in survfit with categorical variable

Bill.Venables at csiro.au Bill.Venables at csiro.au
Tue Nov 11 02:09:16 CET 2008


This is a bit tricky, but you need to specify the full set of possible levels for the factor in newdata.  Try this

temp <- data.frame(gender = factor("Male", levels = levels(wlwsn1$gender)))
wlwsn1curve <- survfit(fit, newdata=temp)

(Warning: untested code.)

Bill Venables
http://www.cmis.csiro.au/bill.venables/


-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Zhixin Liu
Sent: Tuesday, 11 November 2008 10:58 AM
To: r-help at r-project.org
Subject: [R] using newdata in survfit with categorical variable

Hi R-helpers,

I was trying to put gender='Male'  in newdata to create a expected survival curve for a pseudo cohort by using survfit based on Cox regression. My codes are shown below:

fit<- coxph(Surv(end, status2)~gender, data=wlwsn1)
Summary(fit)
                     coef exp(coef) se(coef)    z     p
genderMale 0.204      1.23   0.0912 2.23 0.025

temp<-data.frame(gender='Male)
wlwsn1curve<-survfit(fit, newdata=temp)
Then I got error message:
Error in `contrasts<-`(`*tmp*`, value = "contr.treatment") :
  contrasts can be applied only to factors with 2 or more levels

I do not know what this error message indicates, do I have to recode gender to 0,1 to get it through?

Many thanks

Zhixin

______________________________________________
R-help at 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.



More information about the R-help mailing list