1.我想忽略某一次迭代错误,不要跳出循环,继续下一次循环迭代,如何实现?
2.如何将大括号内的部分代码封装成函数,例如:C_index.test <- function(seed=i) {set.seed(i) 其余略},最后用for (i in 139:141) C_index.test ()的形式调用该函数?我前面尝试过,没有成功。
多谢朋友们!
- library(rms)
- dat.rank.1 <- read.table('dat.rank.1.txt', sep='\t', header=T)
- units(dat.rank.1$OS) <- "Month"
- C_index.results1000 <- matrix(nrow = 145, ncol = 4)
- # 迭代到i=140报错,循环跳出,第140行及以后没有数值
- for (i in 139:141) {
- set.seed(i)
- ID_mod <- sample(1:nrow(dat.rank.1), nrow(dat.rank.1)*2/3)
- dat.model <- dat.rank.1[ID_mod, ]
- dat.model$mod <- 'Training'
-
- dat.validate <- dat.rank.1[-ID_mod, ]
- dat.validate$mod <- 'Validation'
-
-
- ddist <- datadist(dat.model)
- options(datadist = "ddist")
-
-
- f <- cph(Surv(OS, Event) ~ miR.index+T+M, x=T, y=T, surv=T, data=dat.model, time.inc=36)
- validate(f, method="boot", B=1000, dxy=T)
- rcorrcens(Surv(OS, Event) ~ predict(f), data = dat.model)
- C_index <- 1-rcorrcens(Surv(OS, Event) ~ predict(f), data = dat.model)[1]
-
-
- fev <- cph(Surv(OS, Event) ~ predict(f, newdata=dat.validate), x=T, y=T, surv=T, data=dat.validate, time.inc=36)
- validate(fev, method="boot", B=1000, dxy=T)
- rcorrcens(Surv(OS, Event) ~ predict(f, newdata=dat.validate), data = dat.validate)
- C_index2 <- 1-rcorrcens(Surv(OS, Event) ~ predict(f, newdata=dat.validate), data = dat.validate)[1]
-
- C_index.results1000[i, ] <- c(i, C_index, C_index2, C_index+C_index2)
- }
- View(C_index.results1000) # 第141行有数值说明后续迭代成功了
链接: https://pan.baidu.com/s/18mQ1takpdV24R28g-LyHsA 提取码: apca
C_index.results4.txt
(1.34 KB)
dat.rank.1.txt
(289.12 KB)


雷达卡




京公网安备 11010802022788号







