我需要将生存分析的随访时间限制在诊断后五年。但是,我不确定该使用哪个函数。
我使用Surv
函数进行分析:
coxph(Surv(Time, Event) ~ education, data = data_Cox)
我需要限制变量";时间";最长五年,之后,这些人需要接受审查。
您可以使用ifelse()
函数两次,一次用于更改事件指示器,一次则用于更改时间变量。您可以通过运行?ifelse
或在线搜索来阅读文档
set.seed(123)
dat <- data.frame(Time = rexp(10, rate = 0.2),
Event = rbinom(10, 1, 0.8))
print(dat)
#> Time Event
#> 1 4.2172863 1
#> 2 2.8830514 0
#> 3 6.6452743 0
#> 4 0.1578868 1
#> 5 0.2810549 1
#> 6 1.5825061 0
#> 7 1.5711365 1
#> 8 0.7263340 1
#> 9 13.6311823 1
#> 10 0.1457672 1
dat$NewTime <- ifelse(dat$Time >= 5,
5, dat$Time)
dat$NewEvent <- ifelse(dat$Time >= 5,
0, dat$Event)
print(dat)
#> Time Event NewTime NewEvent
#> 1 4.2172863 1 4.2172863 1
#> 2 2.8830514 0 2.8830514 0
#> 3 6.6452743 0 5.0000000 0
#> 4 0.1578868 1 0.1578868 1
#> 5 0.2810549 1 0.2810549 1
#> 6 1.5825061 0 1.5825061 0
#> 7 1.5711365 1 1.5711365 1
#> 8 0.7263340 1 0.7263340 1
#> 9 13.6311823 1 5.0000000 0
#> 10 0.1457672 1 0.1457672 1
创建于2022-09-17,reprex v2.0.2
@DavidLukeThiessen提供的基本想法是合理的,但。。对"Time"one_answers"Event"等列进行破坏性编辑并使用ifelse
的错误做法效率相当低。
相反,应该创建一个新列。也可以做这个
dat$Event2 <- NA
dat$Time2 <- NA
dat$Event2[dat$Time >5] <- 0
dat$Time2[ dat$Time > 5 ] <- 5`