延迟进入生存模型。R与Stata差异

延迟进入生存模型。R与Stata差异,r,stata,survival-analysis,R,Stata,Survival Analysis,我在Stata中有一些代码,我正试图在R中重做。我正在研究一个延迟进入生存模型,我想将随访时间限制为5年。在Stata中,这是非常容易的,可以按如下方式进行,例如: stset end, fail(failure) id(ID) origin(start) enter(entry) exit(time 5) stcox var1 然而,我在R中重新创建这个问题时遇到了困难。我制作了一个玩具示例,将随访时间限制为1000天-以下是设置: library(survival); library(fo

我在Stata中有一些代码,我正试图在R中重做。我正在研究一个延迟进入生存模型,我想将随访时间限制为5年。在Stata中,这是非常容易的,可以按如下方式进行,例如:

stset end, fail(failure) id(ID) origin(start) enter(entry) exit(time 5)
stcox var1
然而,我在R中重新创建这个问题时遇到了困难。我制作了一个玩具示例,将随访时间限制为1000天-以下是设置:

library(survival); library(foreign); library(rstpm2)

data(brcancer)
brcancer$start <- 0
# Make delayed entry time
brcancer$entry <- brcancer$rectime / 2
# Write to dta file for Stata
write.dta(brcancer, "brcancer.dta")

下面是R代码和结果:

# Limit follow-up to 1000 days
brcancer$limit <- ifelse(brcancer$rectime <1000, brcancer$rectime, 1000)
# Cox model 
mod1 <- coxph(Surv(time=entry, time2= limit, event = censrec) ~ hormon, data=brcancer, ties = "breslow")
summary(mod1)
#将随访时间限制为1000天

brcancer$limit由于在记录到终止日期后发生的死亡后,方法在可用数据集上匹配,因此我将我的评论的相关部分作为答案发布

我还认为,你应该将任何超过1000人的死亡人数改为审查。(请注意,在两组结果中,事件的数量非常不同


就目前而言,这是可复制的可能性在于对以下问题的回答:
brcancer
从何而来?我还认为,你应该将任何超过1000人的死亡改变为审查。(请注意,两组结果中的事件数完全不同。
brcancer
是rstpm2包中的数据集(这就是我加载该包的原因)。这也是一个Stata数据集,但我将其保存到文件中,然后将其加载到Stata中,以显示它是相同的数据。对事件数量的观察非常好。我刚刚生成了一个新的审查变量:
brcancer$fail,我将其作为答案发布。(很抱歉没有更仔细地阅读您的问题。)然后你可以获得升级投票,未回答的问题队列可以减少。升级投票你的问题,但我建议你添加评论材料,因为这是推荐的澄清策略。太好了,谢谢42。我现在也在我的真实数据中纠正了这一点,所以我很高兴。谢谢你的帮助
# Limit follow-up to 1000 days
brcancer$limit <- ifelse(brcancer$rectime <1000, brcancer$rectime, 1000)
# Cox model 
mod1 <- coxph(Surv(time=entry, time2= limit, event = censrec) ~ hormon, data=brcancer, ties = "breslow")
summary(mod1)