R中多个变量的Kaplan-Meier生存估计

时间:2018-11-08 11:51:32

标签: r survival-analysis

我正在尝试找到多个变量的Kaplan-Meier估计。

我有一个看起来像这样的data.set:

intuition

我使用了代码 fw_year steroid_dos status current_dos 1 6.3271732 0.0 0 7.5-14.9 mg 24 4.5530457 0.0 0 no-use 29 0.9137577 0.0 0 no-use 33 7.3675566 367.5 0 15.0-24.9 mg 42 3.3127995 0.0 0 no-use 51 9.8288841 0.0 0 >0-4.9 mg 53 8.3696098 0.0 0 >0-4.9 mg 以获得每个类别的以下结果。

fit1<-survfit(Surv_df ~ current_dos, data = df1)

我的问题是我该如何获取有关药物类别的kaplan-meier估计值,以在“年”列中显示每1.5年和10年的结果?

1 个答案:

答案 0 :(得分:1)

将来,请以人们可以复制并将其粘贴到其控制台的格式发布数据。通常,人们为此使用dput。 如果希望每个列都按组进行生存估计,请首先获取拟合值,然后将结果放入data.frame中。然后传播结果。如果您将time ~strata切换为strata ~ time,那么您将在列中而不是列名称中使用药物。

library(survival)
library(data.table)
library(dplyr)

fit1 <- survfit(Surv(time,status)~sex,data = lung)
#get time point estimates
#just example time points for my data
#replace times with times = c(1,5,10)
sum_fit1 <- summary(fit1, times = c(150,365,800))
#put into dataframe and pull out relevant information
fit1_df <- data.frame(sum_fit1[c(2:6,8:11)],stringsAsFactors = FALSE) %>% 
    #change the strata column to make it more readable      
    mutate(strata = ifelse(strata == "sex=1", "Male","Females"))
#transpose data and columns you want in summary table
fit1_df2 <- dcast(
  setDT(fit1_df)
  , time ~ strata
  , value.var = c("n.risk"
                  ,"n.event", "surv","std.err","lower","upper"))