Kaplan-Meier Plot Log-Rank Test
library(survival) library(survminer) library(finalfit) mydata %>% finalfit::surv_plot('Surv(OverallTime, Outcome)', 'LVI', xlab='Time (months)', pval=TRUE, legend = 'none', break.time.by = 12, xlim = c(0,60) # legend.labs = c('a','b') )
Univariate Cox-Regression
explanatoryUni <- 'LVI' dependentUni <- 'Surv(OverallTime, Outcome)' mydata %>% finalfit(dependentUni, explanatoryUni, metrics=TRUE) -> tUni knitr::kable(tUni[, 1:4], row.names=FALSE, align=c('l', 'l', 'r', 'r', 'r', 'r'))
Univariate Cox-Regression Summary
tUni_df <- tibble::as_tibble(tUni, .name_repair = 'minimal') %>% janitor::clean_names(dat = ., case = 'snake') n_level <- dim(tUni_df)[1] tUni_df_descr <- function(n) { paste0( 'When ', tUni_df$dependent_surv_overall_time_outcome[1], ' is ', tUni_df$x[n + 1], ', there is ', tUni_df$hr_univariable[n + 1], ' times risk than ', 'when ', tUni_df$dependent_surv_overall_time_outcome[1], ' is ', tUni_df$x[1], '.' ) } results5 <- purrr::map(.x = c(2:n_level-1), .f = tUni_df_descr) print(unlist(results5))
\pagebreak
Median Survival
km_fit <- survfit(Surv(OverallTime, Outcome) ~ LVI, data = mydata) km_fit km_fit_median_df <- summary(km_fit) km_fit_median_df <- as.data.frame(km_fit_median_df$table) %>% janitor::clean_names(dat = ., case = 'snake') %>% tibble::rownames_to_column(.data = ., var = 'LVI') km_fit_median_df %>% dplyr::mutate( description = glue::glue( 'When, LVI, {LVI}, median survival is {median} [{x0_95lcl} - {x0_95ucl}, 95% CI] months.' ) ) %>% dplyr::mutate( description = gsub(pattern = 'thefactor=', replacement = ' is ', x = description) ) %>% dplyr::select(description) %>% dplyr::pull() -> km_fit_median_definition km_fit_median_definition
1-3-5-yr survival
summary(km_fit, times = c(12,36,60)) km_fit_summary <- summary(km_fit, times = c(12,36,60)) km_fit_df <- as.data.frame(km_fit_summary[c('strata', 'time', 'n.risk', 'n.event', 'surv', 'std.err', 'lower', 'upper')]) km_fit_df km_fit_df %>% dplyr::mutate( description = glue::glue( 'When {strata}, {time} month survival is {scales::percent(surv)} [{scales::percent(lower)}-{scales::percent(upper)}, 95% CI].' ) ) %>% dplyr::select(description) %>% dplyr::pull() -> km_fit_definition km_fit_definition
\pagebreak
summary(km_fit)$table km_fit_median_df <- summary(km_fit) results1html <- as.data.frame(km_fit_median_df$table) %>% janitor::clean_names(dat = ., case = 'snake') %>% tibble::rownames_to_column(.data = ., var = 'LVI') results1html[,1] <- gsub(pattern = 'thefactor=', replacement = '', x = results1html[,1]) knitr::kable(results1html, row.names = FALSE, align = c('l', rep('r', 9)), format = 'html', digits = 1)
\pagebreak
Pairwise Comparisons
survminer::pairwise_survdiff( formula = formula_p, data = self$data, p.adjust.method = 'BH' )
\pagebreak
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.