Learn R Programming

reportRmd

The goal of reportRmd is to automate the reporting of clinical data in Rmarkdown environments. Functions include table one-style summary statistics, compilation of multiple univariate models, tidy output of multivariable models and side by side comparisons of univariate and multivariable models. Plotting functions include customisable survival curves, forest plots, and automated bivariate plots.

Installation

Installing from CRAN:

install.packages('reportRmd')

You can install the development version of reportRmd from GitHub with:

# install.packages("devtools")
devtools::install_github("biostatsPMH/reportRmd", ref="development")

New Features

  • new compact summary table function rm_compactsum
  • main functions are now pipeable
  • new function to use variable labels in ggplots replace_plot_labels

Documentation

Online Documentation

Examples

Summary statistics by Sex

library(reportRmd)
data("pembrolizumab")

rm_covsum(data=pembrolizumab, maincov = 'sex',
covs=c('age','pdl1','change_ctdna_group'),
show.tests=TRUE)

Compact Table

pembrolizumab |> rm_compactsum( grp = 'sex',
xvars=c('age','pdl1','change_ctdna_group'))

Using Variable Labels

var_names <- data.frame(var=c("age","pdl1","change_ctdna_group"),
                          label=c('Age at study entry',
                                  'PD L1 percent',
                                  'ctDNA change from baseline to cycle 3'))

pembrolizumab <- set_labels(pembrolizumab,var_names)

rm_covsum(data=pembrolizumab, maincov = 'sex',
covs=c('age','pdl1','change_ctdna_group'))

Multiple Univariate Regression Analyses

rm_uvsum(data=pembrolizumab, response='orr',
covs=c('age','pdl1','change_ctdna_group'))
#> Waiting for profiling to be done...
#> Waiting for profiling to be done...
#> Waiting for profiling to be done...

Tidy multivariable analysis

glm_fit <- glm(orr~change_ctdna_group+pdl1+cohort,
               family='binomial',
               data = pembrolizumab)
rm_mvsum(glm_fit,showN=T)

Combining univariate and multivariable models

uvsumTable <- rm_uvsum(data=pembrolizumab, response='orr',
covs=c('age','sex','pdl1','change_ctdna_group'),tableOnly = TRUE)
#> Waiting for profiling to be done...
#> Waiting for profiling to be done...
#> Waiting for profiling to be done...
#> Waiting for profiling to be done...

glm_fit <- glm(orr~change_ctdna_group+pdl1,
               family='binomial',
               data = pembrolizumab)
mvsumTable <- rm_mvsum(glm_fit,tableOnly = TRUE)

rm_uv_mv(uvsumTable,mvsumTable)

Simple survival summary table

Shows events, median survival, survival rates at different times and the log rank test. Does not allow for covariates or strata, just simple tests between groups

 rm_survsum(data=pembrolizumab,time='os_time',status='os_status',
 group="cohort",survtimes=c(12,24),
# group="cohort",survtimes=seq(12,36,12),
# survtimesLbls=seq(1,3,1),
 survtimesLbls=c(1,2),
 survtimeunit='yr')

Summarise Cumulative incidence

library(survival)
data(pbc)
rm_cifsum(data=pbc,time='time',status='status',group=c('trt','sex'),
eventtimes=c(1825,3650),eventtimeunit='day')
#> 106 observations with missing data were removed.

Plotting survival curves

ggkmcif2(response = c('os_time','os_status'),
cov='cohort',
data=pembrolizumab)

Plotting odds ratios

require(ggplot2)
#> Loading required package: ggplot2
forestplotMV(glm_fit)
#> Warning in forestplotMV(glm_fit): NAs introduced by coercion

Plotting bivariate relationships

These plots are designed for quick inspection of many variables, not for publication.

require(ggplot2)
plotuv(data=pembrolizumab, response='orr',
covs=c('age','cohort','pdl1','change_ctdna_group'))
#> Boxplots not shown for categories with fewer than 20 observations.
#> Boxplots not shown for categories with fewer than 20 observations.

Replacing variable names with labels in ggplot

data("mtcars")
mtcars <- mtcars |> 
  dplyr::mutate(cyl = as.factor(cyl)) |>
  set_labels(data.frame(var=c("hp","mpg","cyl"),
                        label=c('Horsepower',
                                'Miles per gallon',
                                'Number of cylinders'))) 
p <- mtcars |> 
ggplot(aes(x=hp, y=mpg, color=cyl, shape=cyl)) +
    geom_point()
replace_plot_labels(p)

Copy Link

Version

Install

install.packages('reportRmd')

Monthly Downloads

271

Version

0.1.1

License

MIT + file LICENSE

Maintainer

Lisa Avery

Last Published

January 24th, 2025

Functions in reportRmd (0.1.1)

ggkmcif2Parameters

Additional parameters passed to ggkmcif2
ggkmcif_paste

Plot KM and CIF curves with ggplot
lpvalue

Formats p-values for LaTeX
forestplotMV

Create a multivariable forest plot using ggplot2
forestplotUVMV

Combine an univariable and multivariable forest plot using ggplot2
forestplot2

Create a forest plot using ggplot2
outTable

Print tables to PDF/Latex HTML or Word
ggkmcif2

Plot KM and CIF curves with ggplot
nestTable

Combine two table columns into a single column with levels of one nested within levels of the other.
mvsum

Get multivariate summary dataframe
replace_plot_labels

Replace variable names with labels in ggplot
plotuv

Plot multiple bivariate relationships in a single plot
m_summary

Output a table for multivariate or univariate regression models
pstprn

Paste with parentheses
psthr

Round and paste with parentheses
rm_cifsum

Summarize cumulative incidence by group
nicename

Lean strings for printing
pembrolizumab

Survival data Survival status and ctDNA levels for patients receiving pembrolizumab
niceNum

Round retaining digits
scrolling_table

Output a scrollable table
rmds

Replace dollar signs with html for proper HTML output
set_labels

Set variable labels
sanitizestr

Sanitizes strings to not break LaTeX
pvalue

Formats p-values
rm_covsum

Outputs a descriptive covariate table
rm_compactsum

Output a compact summary table
set_var_labels

Set variable labels
uvmodels

Aligning models and parameters
rm_uv_mv

Combine univariate and multivariable regression tables
rm_uvsum

Output several univariate models nicely in a single table
xvar_function.default

Helper function: xvar_function.default
rm_survtime

Display survival rates and events for specified times
rm_survsum

Summarise survival data by group
rm_survdiff

Display event counts, expected event counts and logrank test of differences
rm_mvsum

Format a regression model nicely for 'Rmarkdown'
xvar_function

Create a summary table for an individual covariate
hbld

Bold strings in HTML
lbld

Bold strings in LaTeX
uvsum

Get univariate summary dataframe
excelColLetters

Retrieve spreadsheet column letter-names from columns indices
addspace

Add spaces to strings in LaTeX
covsum

Get covariate summary dataframe
excelCol

Retrieve columns number from spreadsheet columns specified as unquoted letters
clear_labels

Clear variable labels from a data frame
extract_labels

Extract variable labels from labelled data frame
geoR_boxcoxfit

Parameter Estimation for the Box-Cox Transformation
crrRx

fit crr model
cap

Capitalize a string
boxcoxfitRx

fit box cox transformed linear model
formatp

Specific p-value formatting
ctDNA

Tumour size change over time Longitudinal changes in tumour size since baseline for patients by changes in ctDNA status (clearance, decrease or increase) since baseline.
ggkmcif

Plot KM and CIF curves with ggplot
forestplotUV

Create an univariable forest plot using ggplot2