A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://insightsengineering.github.io/teal.transform/latest-tag/articles/data-extract.html below:

Data Extract • teal.transform

With teal, app developers can open up their applications to users, allowing them to decide exactly which app data to analyze within the module.

A teal module can leverage the use of data_extract_spec objects to handle and process the user input. Examples can be found in the modules from the teal.modules.clinical package.

The role of data_extract_spec is twofold: to create a UI component in a shiny application and to pass user input from the UI to a custom server logic that can use this input to transform the data. Let’s delve into how it fulfills both of these responsibilities.

Step 1/4 - Preparing the Data
library(teal.transform)
library(teal.data)
#> Loading required package: teal.code
library(shiny)

# Define data.frame objects
ADSL <- teal.data::rADSL
ADTTE <- teal.data::rADTTE

# create a list of reactive data.frame objects
datasets <- list(
  ADSL = reactive(ADSL),
  ADTTE = reactive(ADTTE)
)
# create join_keys
join_keys <- join_keys(
  join_key("ADSL", "ADSL", c("STUDYID", "USUBJID")),
  join_key("ADSL", "ADTTE", c("STUDYID", "USUBJID")),
  join_key("ADTTE", "ADTTE", c("STUDYID", "USUBJID", "PARAMCD"))
)

Consider the following example, where we create two UI elements, one to filter on a specific level from SEX variable, and a second one to select a variable from c("BMRKR1", "AGE"). data_extract_spec object is handed over to the shiny app and gives instructions to generate UI components.

Step 3/4 - Creating the shiny UI and Server Modules

To demonstrate different initialization options of data_extract_spec, let’s first define a shiny module that utilizes data_extract_ui and data_extract_srv to handle data_extract_spec objects. This module creates a UI component for a single data_extract_spec and prints a list of values returned from the data_extract_srv module. For more information about data_extract_ui and data_extract_srv, please refer to the package documentation.

extract_ui <- function(id, data_extract) {
  ns <- NS(id)
  sidebarLayout(
    sidebarPanel(
      h3("Encoding"),
      data_extract_ui(ns("data_extract"), label = "variable", data_extract)
    ),
    mainPanel(
      h3("Output"),
      verbatimTextOutput(ns("output"))
    )
  )
}

extract_srv <- function(id, datasets, data_extract, join_keys) {
  moduleServer(id, function(input, output, session) {
    reactive_extract_input <- data_extract_srv("data_extract", datasets, data_extract, join_keys)
    s <- reactive({
      format_data_extract(reactive_extract_input())
    })
    output$output <- renderPrint({
      cat(s())
    })
  })
}
Step 4/4 - Creating the shiny App

Finally, we include extract_ui in the UI of the shinyApp, and utilize extract_srv in the server function of the shinyApp:

shinyApp(
  ui = fluidPage(extract_ui("data_extract", simple_des)),
  server = function(input, output, session) {
    extract_srv("data_extract", datasets, simple_des, join_keys)
  }
)

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