Skip to contents

[Stable]

The Data Extract input can be used to filter and select columns from a data set. This function enables such an input in teal. Please use the constructor function data_extract_spec to set it up.

Note that no checks based on columns can be done because the data is only referred to by name.

Usage

data_extract_spec(dataname, select = NULL, filter = NULL, reshape = FALSE)

Arguments

dataname

(character)
The name of the dataset to be extracted.

select

(NULL, select_spec-S3 class or delayed_select_spec)
Columns to be selected from the input dataset mentioned in dataname. The setup can be created using select_spec function.

filter

(NULL or filter_spec or its respective delayed version)
Setup of the filtering of key columns inside the dataset. This setup can be created using the filter_spec function. Please note that if both select and filter are set to NULL, then the result will be a filter spec UI with all variables as possible choices and a select spec with multiple set to TRUE.

reshape

(logical)
whether reshape long to wide. Note that it will be used only in case of long dataset with multiple keys selected in filter part.

Module Development

teal.transform uses this object to construct a UI element in a module.

Examples

TealDataset with multiple filters and column selection
adtte_filters <- filter_spec(
vars = c("PARAMCD", "CNSR"),
sep = "-",
choices = c("OS-1" = "OS-1", "OS-0" = "OS-0", "PFS-1" = "PFS-1"),
selected = "OS-1",
multiple = FALSE,
label = "Choose endpoint and Censor"
)

data_extract_spec(
  dataname = "ADTTE",
  filter = adtte_filters,
  select = select_spec(
    choices = c("AVAL", "BMRKR1", "AGE"),
        selected = c("AVAL", "BMRKR1"),
        multiple = TRUE,
        fixed = FALSE,
        label = "Column"
    )
)
TealDataset with multiple filters and column selectionTealDataset with multiple filters and column selectionTealDataset with multiple filters and column selection Data extract without filtering
data_extract_spec(
  dataname = "ADSL",
  filter = NULL,
  select = select_spec(
    choices = c("AGE", "SEX", "USUBJID"),
        selected = c("SEX"),
        multiple = FALSE,
        fixed = FALSE
    )
)
Data extract without filtering Data extract with a single filter
data_extract_spec(
   dataname = "ADSL",
   filter = filter_spec(
     vars = variable_choices("ADSL", subset = c("AGE"))
   )
 )
Data extract with a filter that also selects columns due to no select_spec
dynamic_filter <- filter_spec(
   vars = choices_selected(variable_choices(ADSL), "COUNTRY"),
   multiple = TRUE
  )
 data_extract_spec(
   dataname = "ADSL",
   filter = dynamic_filter
 )