r-将生存时间限制在确诊后的前五年



我需要将生存分析的随访时间限制在诊断后五年。但是,我不确定该使用哪个函数。

我使用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`

相关内容

  • 没有找到相关文章

最新更新