Using outliers module
Mahmoud Hallal
2022-06-14
using-outliers-module.Rmd
Teal application to analyse and report outliers with various datasets types.
This vignette will guide you through 4 parts to create a teal application using various types of datasets inside the outliers module:
- Load Libraries
- Create data sets
- Create an
app
variable - Run the App
Create data sets
Inside this app 5 datasets will be used
-
ADSL
A wide data set with subject data -
ADRS
A long data set with response data for subjects at different time points of the study -
ADLB
A long data set with lab measurements for each subject
ADSL <- synthetic_cdisc_data("latest")$adsl # nolint
ADRS <- synthetic_cdisc_data("latest")$adrs # nolint
ADLB <- synthetic_cdisc_data("latest")$adlb # nolint
Create an app
variable
This is the most important section. We will use the teal::init
function to create an app. The data will be handed over using teal.data::cdisc_data
.
The app itself will be constructed by multiple calls of
tm_outliers
using different combinations of data sets.
app <- init(
data = cdisc_data(
cdisc_dataset("ADSL", ADSL, code = "ADSL <- synthetic_cdisc_data(\"latest\")$adsl"),
cdisc_dataset("ADRS", ADRS, code = "ADRS <- synthetic_cdisc_data(\"latest\")$adrs"),
cdisc_dataset("ADLB", ADLB, code = "ADLB <- synthetic_cdisc_data(\"latest\")$adlb"),
check = TRUE
),
modules = modules(
# tm_outliers ----
modules(
label = "Outliers module",
tm_outliers(
label = "Single wide dataset",
outlier_var = data_extract_spec(
dataname = "ADSL",
select = select_spec(
label = "Select variable:",
choices = variable_choices(ADSL, c("AGE", "BMRKR1")),
selected = "AGE",
fixed = FALSE
)
),
categorical_var = data_extract_spec(
dataname = "ADSL",
select = select_spec(
label = "Select variables:",
choices = variable_choices(ADSL, subset = names(Filter(isTRUE, sapply(ADSL, is.factor)))),
selected = "RACE",
multiple = FALSE,
fixed = FALSE
)
)
),
tm_outliers(
label = "Wide and long datasets",
outlier_var = list(
data_extract_spec(
dataname = "ADSL",
select = select_spec(
label = "Select variable:",
choices = variable_choices(ADSL, c("AGE", "BMRKR1")),
selected = "AGE",
fixed = FALSE
)
),
data_extract_spec(
dataname = "ADLB",
select = select_spec(
label = "Select variable:",
choices = variable_choices(ADLB, c("AVAL", "CHG2")),
selected = "AVAL",
multiple = FALSE,
fixed = FALSE
)
)
),
categorical_var =
data_extract_spec(
dataname = "ADSL",
select = select_spec(
label = "Select variables:",
choices = variable_choices(ADSL, subset = names(Filter(isTRUE, sapply(ADSL, is.factor)))),
selected = "RACE",
multiple = FALSE,
fixed = FALSE
)
)
),
tm_outliers(
label = "Multiple long datasets",
outlier_var = list(
data_extract_spec(
dataname = "ADRS",
select = select_spec(
label = "Select variable:",
choices = variable_choices(ADRS, c("ADY", "EOSDY")),
selected = "ADY",
fixed = FALSE
)
),
data_extract_spec(
dataname = "ADLB",
select = select_spec(
label = "Select variable:",
choices = variable_choices(ADLB, c("AVAL", "CHG2")),
selected = "AVAL",
multiple = FALSE,
fixed = FALSE
)
)
),
categorical_var = list(
data_extract_spec(
dataname = "ADRS",
select = select_spec(
label = "Select variables:",
choices = variable_choices(ADRS, c("ARM", "ACTARM")),
selected = "ARM",
multiple = FALSE,
fixed = FALSE
)
),
data_extract_spec(
dataname = "ADLB",
select = select_spec(
label = "Select variables:",
choices = variable_choices(ADLB, subset = names(Filter(isTRUE, sapply(ADLB, is.factor)))),
selected = "RACE",
multiple = FALSE,
fixed = FALSE
)
)
)
)
)
)
)
Run the app
A simple shiny::shinyApp
call will let you run the app.
Note that app is only displayed when running this code inside an R
session.