生存包R:survSplit“开始时间<结束时间”

时间:2017-03-30 15:54:53

标签: r survival-analysis

我正在尝试使用生存中的survSplit函数创建一个带有切割点的数据框,用于分段危险建模。 数据是右删失的,但不是左截断/审查。 数据看起来像这样

stay event sex marstat agegr health ID 0.101 1 f 0 (75,90] 1 1 0.167 1 f 0 (75,90] 2 2 2.968 0 f 0 [65,75] 2 3

保持为时间变量,事件为事件指示器

根据之前对幸存者的经验,我开始使用以下代码:

             datasplit <- survSplit(data= data, cut = c(0.25, 0.5, 1, 2,3), 
                          end = "stay", start = "start", episode= "interval")

这不起作用,因为它没有公式(但它显然在11月份对我有用,我猜的是生存包的旧版本?) 在搜索了公式应该是什么之后,我进入了以下

           datasplit <- survSplit(Surv(stay, event)~., 
                        data= data, cut = c(0.25, 0.5, 1, 2,3), 
                        end = "stay", start = "start", episode= "interval")

我收到错误消息:“开始时间&lt;结束时间”,由于没有开始时间,因此很奇怪。 根据我在Stack溢出时看到的前一个答案,我重试了没有end =和event =,但是错误消息没有消失。 我不知道在这一点上我能做些什么来补救它。

1 个答案:

答案 0 :(得分:0)

我看到你已经提供了回复,但我想再讨论一下这个话题。

这里有两件事需要考虑,有时在生存分析中,时间发生在0是没有意义的,所以可能你是正确的,应该添加时间0的事件错误以理解它们。

  longdata <- survival::survSplit(Surv(time2event, os_event ) ~.,
                        data = d %>%
                        dplyr::mutate(os_event = ( status == event_type),
                                      time2event = time) ,
                        cut = tau,
                        subset = (d %>% dplyr::select(time) %>%
                          unlist) != 0,
                        start = "start",
                        end = "event",
                        episode = "interval")

我发现该函数还有一个名为子集的选项,可以在0时删除观察,否则,我有时会读到时间0的观察结果应该被删除,但是我更了解你添加一个小错误。