This vignette shows the general purpose and syntax of the tern
R package. The tern
R package contains analytical functions for creating tables and graphs useful for clinical trials and other statistical analysis. The main focus is on the clinical trial reporting tables but the graphs related to the clinical trials are also valuable. The core functionality for tabulation is built on top of the more general purpose rtables
package.
The package provides a large range of functionality to create tables and graphs used for clinical trial and other statistical analysis.
rtables
tabulation extended by clinical trials specific functions:
rtables
tabulation helper functions:
data visualizations connected with clinical trials:
data visualizations helper functions:
The reference of tern
functions is available on the tern website functions reference.
rtables
Analytical functions are used in combination with other rtables
layout functions, in the pipeline which creates the rtables
table. They apply some statistical logic to the layout of the rtables
table. The table layout is materialized with the rtables::build_table
function and the data.
The tern
analytical functions are wrappers around the rtables::analyze
function; they offer various methods useful from the perspective of clinical trials and other statistical projects.
Examples of the tern
analytical functions are count_occurrences
, summarize_ancova
and analyze_vars
. As there is no one prefix to identify all tern
analytical functions it is recommended to use the reference subsection on the tern website.
In the rtables
code below we first describe the two tables and assign the descriptions to the variables lyt
and lyt2
. We then built the tables using the actual data with rtables::build_table
. The description of a table is called a table layout. The analyze instruction adds to the layout that the ARM
variable should be analyzed with the mean
analysis function and the result should be rounded to 1 decimal place. Hence, a layout is “pre-data”; that is, it’s a description of how to build a table once we get data.
Defining the table layout with a pure rtables
code:
Below, the only tern
function used is analyze_vars
which replaces the rtables::analyze
function used above.
# Apply table layout to data and produce `rtables` object
adrs <- formatters::ex_adrs
rtables::build_table(lyt, df = adrs)
#> A: Drug X B: Placebo C: Combination
#> ——————————————————————————————————————————————————————————
#> SCREENING
#> mean 3.0 3.0 3.0
#> BASELINE
#> mean 2.5 2.8 2.5
#> END OF INDUCTION
#> mean 1.7 2.1 1.6
#> FOLLOW UP
#> mean 2.2 2.9 2.0
rtables::build_table(lyt2, df = adrs)
#> A: Drug X B: Placebo C: Combination
#> ———————————————————————————————————————————————————————————————
#> SCREENING
#> n 154 178 144
#> Mean (SD) (3.00, 0.00) (3.00, 0.00) (3.00, 0.00)
#> Median 3.0 3.0 3.0
#> Min - Max 3.0 - 3.0 3.0 - 3.0 3.0 - 3.0
#> BASELINE
#> n 136 146 124
#> Mean (SD) (2.46, 0.88) (2.77, 1.00) (2.46, 1.08)
#> Median 3.0 3.0 3.0
#> Min - Max 1.0 - 4.0 1.0 - 5.0 1.0 - 5.0
#> END OF INDUCTION
#> n 218 205 217
#> Mean (SD) (1.75, 0.90) (2.14, 1.28) (1.65, 1.06)
#> Median 2.0 2.0 1.0
#> Min - Max 1.0 - 4.0 1.0 - 5.0 1.0 - 5.0
#> FOLLOW UP
#> n 164 153 167
#> Mean (SD) (2.23, 1.26) (2.89, 1.29) (1.97, 1.01)
#> Median 2.0 4.0 2.0
#> Min - Max 1.0 - 4.0 1.0 - 4.0 1.0 - 4.0
We see that tern
offers advanced analysis by extending rtables
function calls with only one additional function call.
More examples with tabulation analyze functions are presented in the Tabulation
vignette.
Clinical trial related plots complement the rich palette of tern
tabulation analysis functions. Thus the tern
package delivers a full-featured tool for clinical trial reporting. The tern
plot functions return graphs as ggplot2
objects.
adsl <- formatters::ex_adsl
adlb <- formatters::ex_adlb
adlb <- dplyr::filter(adlb, PARAMCD == "ALT", AVISIT != "SCREENING")
The nestcolor
package can be loaded in to apply the standardized NEST color palette to all tern
plots.
Line plot without a table generated by the g_lineplot
function.
# Mean with CI
g_lineplot(adlb, adsl, subtitle = "Laboratory Test:")
Line plot with a table generated by the g_lineplot
function.
# Mean with CI, table, and customized confidence level
g_lineplot(
adlb,
adsl,
table = c("n", "mean", "mean_ci"),
title = "Plot of Mean and 80% Confidence Limits by Visit"
)
All tern
functions used for plot generation are g_
prefixed and are listed on the tern website functions reference.
Most tern
outputs can be easily converted into shiny
apps. We recommend building apps using the teal
package, a shiny-based interactive exploration framework for analyzing data. A variety of pre-made teal
shiny apps for tern
outputs are available in the teal.modules.clinical
package.
In summary, tern
contains many additional functions for creating tables, listings, and graphs used in clinical trials and other statistical analyses. The design of the package gives users the flexibility to meet the analysis needs in both regulatory and exploratory reporting contexts.
For more information please explore the tern website.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4