Hello everybody, I come with a question which I do not know how to conduct in
an efficient way. In order to
provide a toy example, consider the dataset "pbc" from the package "survival".
First, I fit the Cox model "Cox0":
library("survival")
set.seed(1)
v <- runif(nrow(pbc), min = 0, max = 2)
Cox0 <- coxph(Surv(pbc$time,pbc$status == 2) ~ v, data = pbc)
Then, from the above model, I can fit recursively 10 additional models as:
Cox <- list()
Cox[[1]] <- update(Cox0, . ~ . + cos(1 * v), data = pbc)
Cox[[2]] <- update(Cox[[1]], . ~ . + cos(2 * v), data = pbc)
Cox[[3]] <- update(Cox[[2]], . ~ . + cos(3 * v), data = pbc)
Cox[[4]] <- update(Cox[[3]], . ~ . + cos(4 * v), data = pbc)
...
Cox[[10]] <- update(Cox[[9]], . ~ . + cos(10* v), data = pbc)
Since in practice I have to repeat above step until Cox[[100]], say, do you
know an efficient way to
wrap this code chunk in a loop or similar?
I had tried:
set.seed(1)
v <- runif(nrow(pbc), min = 0, max = 2)
Cox0 <- coxph(Surv(pbc$time,pbc$status == 2) ~ v, data = pbc)
Cox <- list()
Cox[[1]] <- update(Cox0, . ~ . + cos(1 * v), data = pbc)
for (k in 1:10) {
Cox[[k + 1]] <- update(Cox[[k]], . ~ . + cos((k + 1) * v), data = pbc)
}
However, from Cox[[3]] onwards, the intermediate values of integer k are not
included here (for
instance, the model Cox[[10]] would only include the cosinus terms for
cos(1*v) and cos(10*v)).
Thanks in advance for any help!
Frank
[[alternative HTML version deleted]]
______________________________________________
[email protected] mailing list -- To UNSUBSCRIBE and more, see
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.