secmalasct/utils.R
Jens Sauer c68e536861 utils: Filter patient by age
The minimum age for this study is 16.0 years or older at time of
transplantation.
2020-11-17 15:05:31 +01:00

86 lines
2.7 KiB
R

# secMalASCT utilities
#
# License: GPL version 3
# Jens Mathis Sauer (c) 2020
library(tidyverse)
#
# Write plot to filename
#
# This will plot "fun" with arguments "..." as filetype "ftype" and
# the output to "filename". Title and legends can be passed as list,
# or NULL if not needed.
# Default filesize is 3000x3000 px and 300 dpi resolution.
#
sma_plot_file <- function(fname, ftype, fun) {
# Open file for writing
ftype(filename = fname, width = 3000, height = 3000, res = 300)
#
# Write plot into variable, then printing it manually. This is
# needed to save plots from package "survminer" at the moment.
#
# See: https://github.com/kassambara/survminer/issues/152
#
p <- fun()
print(p)
# hide "null device 1" in garbage
garbage <- dev.off()
}
#
# Load secMalASCT data
#
# This loads the secMalASCT data from a CSV file and adjusts some
# columns to the correct type.
#
sma_load_data <- function(file) {
sma <- as_tibble(read.csv(file, header = TRUE))
# Type adjustments
sma$follow_up_multi <- as.logical(sma$follow_up_multi)
sma$nicotin_history <- as.logical(sma$nicotin_history)
sma$relapse_treatment_asct <- as.logical(sma$relapse_treatment_asct)
sma$relapse_treatment_chemotherapy <- as.logical(sma$relapse_treatment_chemotherapy)
sma$relapse_treatment_radiotherapy <- as.logical(sma$relapse_treatment_radiotherapy)
sma$relapse_treatment_surgery <- as.logical(sma$relapse_treatment_surgery)
sma$pre_rt <- as.logical(sma$pre_rt)
sma$pre_rt_type <- as.factor(sma$pre_rt_type)
sma$post_rt <- as.logical(sma$post_rt)
sma$post_rt_type <- as.factor(sma$post_rt_type)
sma$pre_alkylating_agents <- as.logical(sma$pre_alkylating_agents)
sma$pre_topoisomerase <- as.logical(sma$pre_topoisomerase)
sma$pre_anthracyclines <- as.logical(sma$pre_anthracyclines)
sma$peri_alkylating_agents <- as.logical(sma$peri_alkylating_agents)
sma$peri_topoisomerase <- as.logical(sma$peri_topoisomerase)
sma$peri_anthracyclines <- as.logical(sma$peri_anthracyclines)
sma$post_alkylating_agents <- as.logical(sma$post_alkylating_agents)
sma$post_topoisomerase <- as.logical(sma$post_topoisomerase)
sma$post_anthracyclines <- as.logical(sma$post_anthracyclines)
sma$maintenance_treatment <- as.logical(sma$maintenance_treatment)
sma$maintenance_treatment_time <- as.integer(sma$maintenance_treatment_time)
sma$maintenance_treatment_type <- as.factor(sma$maintenance_treatment_type)
sma$thalidomid <- as.logical(sma$thalidomid)
sma$bortezomib <- as.logical(sma$bortezomib)
#
# Limit to patients which are at least 16.0 years old at time
# of transplantation.
sma <- filter(sma, asct_age >= 16.0)
return(sma)
}
#
# Global break.time.by value
#
sma_break.time.by = 5 * 365.25