This vignette focuses on the visualization functionalities available within the inTextSummaryTable
package.
If you need to see figures bigger, just click on a graphic, and it will pop up more readable.
Summary statistics can be visualized by:
computeSummaryStatisticsTable
function (used for getSummaryStatistics
function)subjectProfileSummaryPlot
functionBy default the subjectProfileSummaryPlot
plots the mean values with error bars based on standard errors.
Moreover, the subjectProfileSummaryPlot
allows the possibility to add a table of counts of the number of subject for a specific combination of variables.
This vignette will guide the user to
However, in order to get a full overview of the functionalities the documentation is available in the console with ? subjectProfileSummaryPlot
.
We will first create example data sets to show how the exporting functionalities work. The data sets used here are available in the clinUtils
package.
library(inTextSummaryTable)
library(clinUtils)
library(pander)
# 'Tahoma' font should be registered upfront to create plots with: 'presentation' style
library(extrafont)
# load example data
data(dataADaMCDISCP01)
dataAll <- dataADaMCDISCP01
labelVars <- attr(dataAll, "labelVars")
Below we compute summary statistics for the laboratory data set.
dataLB <- subset(dataAll$ADLBC, grepl("Baseline|Week", AVISIT))
dataLB$AVISIT <- with(dataLB, reorder(trimws(AVISIT), AVISITN))
dataLB$TRTA <- with(dataLB, reorder(TRTA, TRTAN))
summaryTableDf <- computeSummaryStatisticsTable(
data = dataLB,
var = "AVAL",
rowVar = c("PARCAT1", "PARAM"),
colVar = c("TRTA", "AVISIT")
)
The code below shows the default visualization, which plots the mean with standard errors suitable for an A4 document, e.g. Word/pdf.
Note that the table below the plot is based on the counts for treatment and visit variables, as specificed in the colVar
argument of the code chuck above for computeSummaryStatisticsTable
.
# create the plot
dataPlot <- subset(
summaryTableDf,
!isTotal &
PARAM == "Alanine Aminotransferase (U/L)"
)
subjectProfileSummaryPlot(
data = dataPlot,
xVar = "AVISIT",
colorVar = "TRTA",
labelVars = labelVars,
useLinetype = TRUE,
tableText = "statN"
)
The code below shows the default visualization suitable for a presentation, either in Powerpoint or ioslides.
subjectProfileSummaryPlot(
data = dataPlot,
xVar = "AVISIT",
colorVar = "TRTA",
labelVars = labelVars,
useLinetype = TRUE,
tableText = "statN",
style = "presentation"
)
Please note that the default font for presentation is Tahoma.
If you don’t have this default font available, the R package extrafont might be useful to register fonts with your R graphics device.
The inTextSummaryTable
uses default palettes available in the clinUtils
package.
However, palettes are fully customizable. Currently, there are two alternative approaches to change the defaults:
subjectProfileSummaryPlot
via the dedicated parameters colorPalette
, shapePalette
, linetypePalette
Passing input arguments to the function might be convenient when creating one plot.
Instead, passing the global options is very handy when creating multiple graphics, so that the palettes have to be set only once at the beginning of the R script, without the need to copy-paste input arguments in the different visualizations.
If you want to know more about aesthetics options of the inTextSummaryTable
, there is a dedicated vignette available here) or with
vignette("inTextSummaryTable-aesthetics", "inTextSummaryTable")
If you want to know more about default options from the clinUtils
, you may check out the vignette of the package:
vignette("clinUtils-vignette", "clinUtils")
Sections below show below both alternative approaches for setting the palettes.
In this section we guide on how to set custom palettes via the subjectProfileSummaryPlot
function.
This section focuses on the possibility to set the colorPalette
argument.
# custom color palette by setting a named vector of colors
customColorPalette <- c(
`Xanomeline Low Dose` = "green",
`Xanomeline High Dose` = "red",
`Placebo` = "blue"
)
subjectProfileSummaryPlot(
data = dataPlot,
xVar = "AVISIT",
colorVar = "TRTA",
colorPalette = customColorPalette,
labelVars = labelVars,
useLinetype = TRUE,
tableText = "statN"
)
This section focuses on the possibility to set the shapePalette
and linetypePalette
arguments.
# custom shape palette
customShapePalette <- c(15, 17, 19)
subjectProfileSummaryPlot(
data = dataPlot,
xVar = "AVISIT",
colorVar = "TRTA",
shapePalette = customShapePalette,
labelVars = labelVars,
useLinetype = TRUE,
tableText = "statN"
)
# custom linetype palette
customLinetypePalette <- c("twodash", "dotted", "longdash")
subjectProfileSummaryPlot(
data = dataPlot,
xVar = "AVISIT",
colorVar = "TRTA",
linetypePalette = customLinetypePalette,
labelVars = labelVars,
useLinetype = TRUE,
tableText = "statN"
)
The inTextSummaryTable
package allows the user to define global options in the R session.
As mentioned above, setting the global options is convenient because the palettes have to be set only once in the R script or Rmd document.
Please note that the global options have to be set after loading the package. This because when loading the package, the default global options for palettes will overwrite the custom palettes.
Here in practice:
# this is OK
library(inTextSummaryTable)
options(inTextSummaryTable.colors.plot = customColorPalette)
# this does NOT set your custom palette
options(inTextSummaryTable.colors.plot = customColorPalette)
library(inTextSummaryTable)
Color palettes can be set up with the inTextSummaryTable.colors.plot
option.
# custom color palette by setting a simple vector of colors
customColorPalette <- c("blue", "green", "orange")
options(inTextSummaryTable.colors.plot = customColorPalette)
subjectProfileSummaryPlot(
data = dataPlot,
xVar = "AVISIT",
colorVar = "TRTA",
labelVars = labelVars,
useLinetype = TRUE,
tableText = "statN"
)
# custom color palette by setting a named vector of colors
customColorPalette <- c(
`Xanomeline Low Dose` = "green",
`Xanomeline High Dose` = "red",
`Placebo` = "purple"
)
options(inTextSummaryTable.colors.plot = customColorPalette)
subjectProfileSummaryPlot(
data = dataPlot,
xVar = "AVISIT",
colorVar = "TRTA",
labelVars = labelVars,
useLinetype = TRUE,
tableText = "statN"
)
What shown for the color palette is consistent for shape and linetypes palettes. In this case, the global options are called inTextSummaryTable.shapes.plot
and inTextSummaryTable.linetypes.plot
.
# custom shape palette
customShapePalette <- c(17, 19, 22)
options(inTextSummaryTable.shapes.plot = customShapePalette)
subjectProfileSummaryPlot(
data = dataPlot,
xVar = "AVISIT",
colorVar = "TRTA",
labelVars = labelVars,
useLinetype = TRUE,
tableText = "statN"
)
# custom linetype palette
customLinetypePalette <- c("dotted", "longdash", "solid")
options(inTextSummaryTable.linetypes.plot = customLinetypePalette)
subjectProfileSummaryPlot(
data = dataPlot,
xVar = "AVISIT",
colorVar = "TRTA",
labelVars = labelVars,
useLinetype = TRUE,
tableText = "statN"
)
There is always to possibility to switch back to the default palettes of the package:
options(inTextSummaryTable.colors.plot = clinColors)
options(inTextSummaryTable.shapes.plot = clinShapes)
options(inTextSummaryTable.linetypes.plot = clinLinetypes)
The user can decide to remove the table of counts by setting the parameter tableText
to NULL
, as the code below shows.
subjectProfileSummaryPlot(
data = dataPlot,
xVar = "AVISIT",
colorVar = "TRTA",
labelVars = labelVars,
useLinetype = TRUE,
tableText = NULL
)
It is possible to directly plot multiple parameters with the facetVar
argument.
Please note that setting the facetVar
is not compatible with adding a table of counts underneath the plot.
# create the plot
dataPlotFacets <- subset(
summaryTableDf,
!isTotal &
PARAM %in% c(
"Alanine Aminotransferase (U/L)",
"Albumin (g/L)",
"Bilirubin (umol/L)",
"Calcium (mmol/L)"
)
)
subjectProfileSummaryPlot(
data = dataPlotFacets,
xVar = "AVISIT",
colorVar = "TRTA",
labelVars = labelVars,
facetVar = c("PARCAT1", "PARAM"),
useLinetype = TRUE
)
The subjectProfileSummaryPlot
has many options! A non-exaustive demonstration is presented below.
# plot the median instead of mean
# no error bars
subjectProfileSummaryPlot(
data = dataPlot,
xVar = "AVISIT",
meanVar = "statMedian",
seVar = NULL,
colorVar = "TRTA",
labelVars = labelVars,
useLinetype = TRUE,
tableText = "statN"
)
# plot the mean with standard deviation
subjectProfileSummaryPlot(
data = dataPlot,
xVar = "AVISIT",
seVar = "statSD",
colorVar = "TRTA",
labelVars = labelVars,
useLinetype = TRUE,
tableText = "statN"
)
# change labels
subjectProfileSummaryPlot(
data = dataPlot,
xVar = "AVISIT",
xLab = "Time points",
yLab = "Mean and Standard Errors",
title = "Title of the plot",
colorVar = "TRTA",
labelVars = labelVars,
useLinetype = TRUE,
tableText = "statN"
)
R version 4.4.0 (2024-04-24)
Platform: x86_64-pc-linux-gnu
locale: C
attached base packages: tools, stats, graphics, grDevices, utils, datasets, methods and base
other attached packages: extrafont(v.0.19), plyr(v.1.8.9), pander(v.0.6.5), clinUtils(v.0.2.0), inTextSummaryTable(v.3.3.3) and knitr(v.1.47)
loaded via a namespace (and not attached): gtable(v.0.3.5), xfun(v.0.44), bslib(v.0.7.0), ggplot2(v.3.5.1), htmlwidgets(v.1.6.4), ggrepel(v.0.9.5), vctrs(v.0.6.5), crosstalk(v.1.2.1), generics(v.0.1.3), curl(v.5.2.1), tibble(v.3.2.1), fansi(v.1.0.6), highr(v.0.11), pkgconfig(v.2.0.3), data.table(v.1.15.4), uuid(v.1.2-0), lifecycle(v.1.0.4), flextable(v.0.9.6), farver(v.2.1.2), stringr(v.1.5.1), compiler(v.4.4.0), textshaping(v.0.4.0), munsell(v.0.5.1), httpuv(v.1.6.15), fontquiver(v.0.2.1), fontLiberation(v.0.1.0), htmltools(v.0.5.8.1), sass(v.0.4.9), yaml(v.2.3.8), Rttf2pt1(v.1.3.12), extrafontdb(v.1.0), later(v.1.3.2), pillar(v.1.9.0), crayon(v.1.5.2), jquerylib(v.0.1.4), gfonts(v.0.2.0), openssl(v.2.2.0), DT(v.0.33), cachem(v.1.1.0), mime(v.0.12), fontBitstreamVera(v.0.1.1), tidyselect(v.1.2.1), zip(v.2.3.1), digest(v.0.6.35), stringi(v.1.8.4), reshape2(v.1.4.4), dplyr(v.1.1.4), labeling(v.0.4.3), forcats(v.1.0.0), cowplot(v.1.1.3), fastmap(v.1.2.0), grid(v.4.4.0), colorspace(v.2.1-0), cli(v.3.6.2), magrittr(v.2.0.3), crul(v.1.4.2), utf8(v.1.2.4), withr(v.3.0.0), gdtools(v.0.3.7), scales(v.1.3.0), promises(v.1.3.0), rmarkdown(v.2.27), officer(v.0.6.6), askpass(v.1.2.0), ragg(v.1.3.2), hms(v.1.1.3), shiny(v.1.8.1.1), evaluate(v.0.24.0), haven(v.2.5.4), viridisLite(v.0.4.2), rlang(v.1.1.4), Rcpp(v.1.0.12), xtable(v.1.8-4), glue(v.1.7.0), httpcode(v.0.3.0), xml2(v.1.3.6), jsonlite(v.1.8.8), R6(v.2.5.1) and systemfonts(v.1.1.0)