57 lines
1.8 KiB
Plaintext
57 lines
1.8 KiB
Plaintext
|
|
||
|
R version 2.14.0 (2011-10-31)
|
||
|
Copyright (C) 2011 The R Foundation for Statistical Computing
|
||
|
ISBN 3-900051-07-0
|
||
|
Platform: i686-pc-linux-gnu (32-bit)
|
||
|
|
||
|
R is free software and comes with ABSOLUTELY NO WARRANTY.
|
||
|
You are welcome to redistribute it under certain conditions.
|
||
|
Type 'license()' or 'licence()' for distribution details.
|
||
|
|
||
|
R is a collaborative project with many contributors.
|
||
|
Type 'contributors()' for more information and
|
||
|
'citation()' on how to cite R or R packages in publications.
|
||
|
|
||
|
Type 'demo()' for some demos, 'help()' for on-line help, or
|
||
|
'help.start()' for an HTML browser interface to help.
|
||
|
Type 'q()' to quit R.
|
||
|
|
||
|
> #
|
||
|
> # Ensure that factors work in prediction
|
||
|
> #
|
||
|
> library(survival)
|
||
|
Loading required package: splines
|
||
|
>
|
||
|
> options(na.action="na.exclude") # preserve missings
|
||
|
> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
|
||
|
> aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
|
||
|
>
|
||
|
> tfit <- coxph(Surv(time, status) ~ age + factor(ph.ecog), lung)
|
||
|
> p1 <- predict(tfit, type='risk')
|
||
|
>
|
||
|
> # Testing NA handling is important too
|
||
|
> keep <- (is.na(lung$ph.ecog) | lung$ph.ecog !=1)
|
||
|
> lung2 <- lung[keep,]
|
||
|
> p2 <- predict(tfit, type='risk', newdata=lung[keep,])
|
||
|
> aeq(p1[keep], p2)
|
||
|
[1] TRUE
|
||
|
>
|
||
|
> # Same, for survreg
|
||
|
> tfit <- survreg(Surv(time, status) ~ age + factor(ph.ecog), lung)
|
||
|
> p1 <- predict(tfit, type='response')
|
||
|
> p2 <- predict(tfit, type='response', newdata=lung2)
|
||
|
> aeq(p1[keep], p2)
|
||
|
[1] TRUE
|
||
|
>
|
||
|
>
|
||
|
> # Now repeat it tossing the missings
|
||
|
> options(na.action=na.omit)
|
||
|
> keep2 <- (lung$ph.ecog[!is.na(lung$ph.ecog)] !=1)
|
||
|
>
|
||
|
> tfit2 <- survreg(Surv(time, status) ~ age + factor(ph.ecog), lung)
|
||
|
> p3 <- predict(tfit2, type='response')
|
||
|
> p4 <- predict(tfit2, type='response', newdata=lung2, na.action=na.omit)
|
||
|
> aeq(p3[keep2] , p4)
|
||
|
[1] TRUE
|
||
|
>
|