r - 如何运行 Kaplan-Meier (KM) 分析来确定两组之间的生存差异?

标签 r survival-analysis p-value

我想通过组合 group 变量和 ann 文件来创建数据矩阵。然后,我想运行 Kaplan-Meier (KM) 分析,以确定两组之间的生存率(即 1 与 0)相对于状态(活着或死亡)是否存在差异。我想从卡方测试输出中提取 p 值。

例如:

library(survival)
library(tidyverse)
library(survminer)

df <- x %>%  
  rename(status=vital_status,
         time=months_to_event) %>% 
  mutate(status=case_when(status=="LIVING" ~ 0,
                            status=="DECEASED" ~ 1))

f <- survdiff(Surv(time,status)~group, data=df)

plot(f,lwd=2,xlab='Weeks',ylab='S_hat(t)',main='KM Plots for Survival data')

Error in xy.coords(x, y, xlabel, ylabel, log) : 'x' is a list, but does not have components 'x' and 'y'

> dput(f)
structure(list(n = structure(c(`group=0` = 86L, `group=1` = 30L
), .Dim = 2L, .Dimnames = list(groups = c("group=0", "group=1"
)), class = "table"), obs = c(27, 5), exp = c(22.3862602609156, 
9.61373973908443), var = structure(c(6.62091719145294, -6.62091719145294, 
-6.62091719145294, 6.62091719145294), .Dim = c(2L, 2L)), chisq = 3.21505219963876, 
    na.action = structure(c(`89` = 76L, `124` = 105L, `129` = 110L
    ), class = "omit"), call = survdiff(formula = Surv(time, 
        status) ~ group, data = df)), class = "survdiff")

最佳答案

library(tidyverse)
library(survival)
library(survminer)

df1 <- df %>%  
  rename(status = vital_status,
         time = months_to_event) %>% 
  mutate(status = case_when(status=="LIVING" ~ 0,
                            status=="DECEASED" ~ 1))


f1 <- survfit(Surv(time, status) ~ group, data = df1)
ggsurvplot(f1,
           pval = TRUE, conf.int = TRUE,
           risk.table = TRUE, # Add risk table
           risk.table.col = "strata", # Change risk table color by groups
           linetype = "strata", # Change line type by groups
           surv.median.line = "hv", # Specify median survival
           ggtheme = theme_bw(), # Change ggplot2 theme
           palette = c("#E7B800", "#2E9FDF"))

enter image description here

关于r - 如何运行 Kaplan-Meier (KM) 分析来确定两组之间的生存差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68479962/

相关文章:

r - 如何将数据框保存在以列分隔的txt或excel文件中

javascript - 为力导向网络中的每个链接指定颜色,networkD3::forceNetwork()

r - 如何填充由直线和曲线创建的几何图形?

r - 如何预测R中的生存概率?

python - 如何将 Pandas 数据框读入卡普兰迈尔曲线?

r - 具有交互变量的非比例风险 (Cox) 模型的计数过程数据集

go - 如何得到相关系数的P值

R markdown,隐藏库输出

Plotly box p 值显着注释

r - 使用R计算维恩图超几何p值