Data merge module
data_merge_module.Rd
Usage
data_merge_module(
datasets,
data_extract,
merge_function = "dplyr::full_join",
anl_name = "ANL",
id = "merge_id"
)
Arguments
- datasets
(
FilteredData
)
object containing data, see teal.slice::FilteredData for more.- data_extract
(named
list
ofdata_extract_spec
)- merge_function
(
character(1)
)
A character string of a function that accepts the argumentsx
,y
andby
to perform the merging of datasets.- anl_name
(
character(1)
)
Name of the analysis dataset.- id
An ID string that corresponds with the ID used to call the module's UI function.
Value
reactive expression with output from data_merge_srv()
.
Details
This function is a convenient wrapper to combine data_extract_multiple_srv()
and
data_merge_srv()
when no additional processing is required.
Compare the example below with that found in data_merge_srv()
.
Examples
library(shiny)
ADSL <- data.frame(
STUDYID = "A",
USUBJID = LETTERS[1:10],
SEX = rep(c("F", "M"), 5),
AGE = rpois(10, 30),
BMRKR1 = rlnorm(10)
)
ADLB <- expand.grid(
STUDYID = "A",
USUBJID = LETTERS[1:10],
PARAMCD = c("ALT", "CRP", "IGA"),
AVISIT = c("SCREENING", "BASELINE", "WEEK 1 DAY 8", "WEEK 2 DAY 15")
)
ADLB$AVAL <- rlnorm(120)
ADLB$CHG <- rnorm(120)
data <- teal.data::cdisc_data(
teal.data::cdisc_dataset("ADSL", ADSL),
teal.data::cdisc_dataset("ADLB", ADLB)
)
datasets <- teal.slice::init_filtered_data(data)
adsl_extract <- data_extract_spec(
dataname = "ADSL",
select = select_spec(
label = "Select variable:",
choices = c("AGE", "BMRKR1"),
selected = "AGE",
multiple = TRUE,
fixed = FALSE
)
)
adlb_extract <- data_extract_spec(
dataname = "ADLB",
filter = filter_spec(vars = "PARAMCD", choices = c("ALT", "CRP", "IGA"), selected = "ALT"),
select = select_spec(
label = "Select variable:",
choices = c("AVAL", "CHG"),
selected = "AVAL",
multiple = TRUE,
fixed = FALSE
)
)
app <- shinyApp(
ui = fluidPage(
teal.widgets::standard_layout(
output = div(
verbatimTextOutput("expr"),
dataTableOutput("data")
),
encoding = tagList(
data_extract_ui("adsl_var", label = "ADSL selection", adsl_extract),
data_extract_ui("adlb_var", label = "ADLB selection", adlb_extract)
)
)
),
server = function(input, output, session) {
merged_data <- data_merge_module(
data_extract = list(adsl_var = adsl_extract, adlb_var = adlb_extract),
datasets = datasets,
merge_function = "dplyr::left_join"
)
output$expr <- renderText(merged_data()$expr)
output$data <- renderDataTable(merged_data()$data())
}
)
if (FALSE) {
runApp(app)
}