25 lines
797 B
R
25 lines
797 B
R
|
options(na.action=na.exclude) # preserve missings
|
||
|
options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
|
||
|
library(survival)
|
||
|
|
||
|
#
|
||
|
# A simple test of an overdetermined system
|
||
|
# Should give a set of NA coefficients
|
||
|
#
|
||
|
test1 <- data.frame(time= c(4, 3,1,1,2,2,3),
|
||
|
status=c(1,NA,1,0,1,1,0),
|
||
|
x= c(0, 2,1,1,1,0,0))
|
||
|
|
||
|
temp <- rep(0:3, rep(7,4))
|
||
|
|
||
|
stest <- data.frame(start = 10*temp,
|
||
|
stop = 10*temp + test1$time,
|
||
|
status = rep(test1$status,4),
|
||
|
x = c(test1$x+ 1:7, rep(test1$x,3)),
|
||
|
epoch = rep(1:4, rep(7,4)))
|
||
|
|
||
|
# Will create a warning about a singular X matrix
|
||
|
fit1 <- coxph(Surv(start, stop, status) ~ x * factor(epoch), stest)
|
||
|
fit1$coef # elements 2:4 should be NA
|
||
|
all.equal(is.na(fit1$coef), c(F,T,T,T,F,F,F), check.attributes=FALSE)
|