data

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(gtsummary)
str(trial)
## tibble [200 × 8] (S3: tbl_df/tbl/data.frame)
##  $ trt     : chr [1:200] "Drug A" "Drug B" "Drug A" "Drug A" ...
##   ..- attr(*, "label")= chr "Chemotherapy Treatment"
##  $ age     : num [1:200] 23 9 31 NA 51 39 37 32 31 34 ...
##   ..- attr(*, "label")= chr "Age"
##  $ marker  : num [1:200] 0.16 1.107 0.277 2.067 2.767 ...
##   ..- attr(*, "label")= chr "Marker Level (ng/mL)"
##  $ stage   : Factor w/ 4 levels "T1","T2","T3",..: 1 2 1 3 4 4 1 1 1 3 ...
##   ..- attr(*, "label")= chr "T Stage"
##  $ grade   : Factor w/ 3 levels "I","II","III": 2 1 2 3 3 1 2 1 2 1 ...
##   ..- attr(*, "label")= chr "Grade"
##  $ response: int [1:200] 0 1 0 1 1 0 0 0 0 0 ...
##   ..- attr(*, "label")= chr "Tumor Response"
##  $ death   : int [1:200] 0 0 0 1 1 1 0 1 0 1 ...
##   ..- attr(*, "label")= chr "Patient Died"
##  $ ttdeath : num [1:200] 24 24 24 17.6 16.4 ...
##   ..- attr(*, "label")= chr "Months to Death/Censor"
View(trial)

Survival Analysis

library(survival)

tbl_survfit(
  survfit(
    Surv(ttdeath,death)~trt,
    trial
  ),
  times=c(12,24)
)
Characteristic Time 12 Time 24
Chemotherapy Treatment

    Drug A 91% (85%, 97%) 47% (38%, 58%)
    Drug B 86% (80%, 93%) 41% (33%, 52%)

Median Survival

tbl_survfit(
  trial,
  y = Surv(ttdeath, death),
  include = c(trt, grade),
  probs = 0.5,
  label_header = "**Median Survival**"
)
Characteristic Median Survival
Chemotherapy Treatment
    Drug A 24 (21, —)
    Drug B 21 (18, —)
Grade
    I — (22, —)
    II 22 (18, —)
    III 20 (18, 23)