r语言 - 提取 Survfit 线的点坐标



我希望这个例子能奏效。 我想知道是否有办法提取生存曲线上每个点的坐标。 我从?plot.survfit知道它将生成一个带有每个类末尾坐标的值,但我想知道线变化的所有点

library(survival)
status <- c(1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,0,1,1,0,0,1,1,0,0,0,0)
classification <- c(1,1,1,2,2,2,2,2,2,2,3,3,3,3,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,8,8)
df <-data.frame( Sub = c(letters,LETTERS[1:24]), 
status= status, 
time= round(rnorm(50,300,100),0), 
class = classification )
fit <- survfit(Surv(time, status)~class, data= df)
plotFit <- plot(fit)

我知道我可以从中提取 SURV 值fit$surv,我可以将它们与fit$timefit$n.event结合起来,但是从这个矩阵中,我必须创建一个循环,以便在状态更改时每 90 度转弯创建一个点,如果有更快的方法直接获得所有这些线转折点的值,那么徘徊也是如此。 提前致谢

我认为它与小写字母相适应,我想data.frame的结构是错误的。像这样,代码运行。

library(survival)
status <- c(1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,0,1,1,0,0,1,1,0,0,0,0)
classification <- c(1,1,1,2,2,2,2,2,2,2,3,3,3,3,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,8,8)

df <-data.frame( Sub = c(letters,LETTERS[1:24]),
status= status,
time= round(rnorm(50,300,100),0), 
class = classification )
fit <- survfit(Surv(time,status)~class, data= df)
plotFit <- plot(fit)

对于坐标,下面只是一个开始。我认为您必须在 n.events 处拆分线条才能正确绘制它。

x <- c(1,fit$time)
y <- c(1,(fit$surv))
plot(x,y, type="S")

您还可以查看包survminer并查看函数ggsurvplot。图更好,图函数被导出。也许这会有所帮助?

library(survminer)
ggsurvplot(fit, data = df)
ggsurvplot

相关内容

  • 没有找到相关文章

最新更新