我正在尝试使用生存中的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 =,但是错误消息没有消失。 我不知道在这一点上我能做些什么来补救它。
答案 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的观察结果应该被删除,但是我更了解你添加一个小错误。