The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
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.
data_extract_spec
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.
library(teal.transform)
library(teal.data)
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"))
)
data_extract_spec
ObjectConsider 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.
shiny
UI and Server
ModulesTo 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())
})
})
}
shiny
AppFinally, we include extract_ui
in the UI of the
shinyApp
, and utilize extract_srv
in the
server function of the shinyApp
:
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.