Filter: Filter Module

Description Format Input Output Super class Methods See Also Examples

Description

The filter module provides an interface to select a data set, variable, and a query based on the value.

Format

R6 class

Input

datalist

A list of data sets. Can be tibbles, data frames, etc. Expects them to have a common ID field (default is USUBJID)

options

The options for the module of type reactiveValues with values

expanded

Should the accordion be expanded when created? Default: TRUE

subjectDs

If one of the data sets in datalist contains subject level data then provide it here. Default: ADSL

idvar

ID field that is common across all datasets in input:datalist. Default USUBJID

Output

filter

S3 object DatasetFilter

Super class

tidymodules::TidyModule -> Filter

Methods

Public methods

Inherited methods

Method new()

Usage
Filter$new(...)

Method ui()

Usage
Filter$ui()

Method server()

Usage
Filter$server(input, output, session, data = NULL, options = NULL)

Method clone()

The objects of this class are cloneable with this method.

Usage
Filter$clone(deep = FALSE)
Arguments
deep

Whether to make a deep clone.

See Also

Other tidymodules: SubgroupManager, Subgroup, SubpopulationManager, Subpopulation, TTEMapping, TTE, TableListing, VariableSelection

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
## Not run: 
library(tidymodules)
library(subpat)
library(bs4Dash)

addFilter1 <- Filter$new()

ui <- tagList(
  shinyjs::useShinyjs(),
  bs4DashPage(
    sidebar = bs4DashSidebar(disable = TRUE),
    
    body = bs4DashBody(
      bs4Accordion(id = 'filterAccordion',
                   addFilter1$ui()),
      
      verbatimTextOutput('filter_results'),
      verbatimTextOutput('showPatients')
    )
  )
)

# Define server logic
server <- function(input, output) {
  datalist <- reactive({
    example_datasets <- list(
      "ADSL" = data.frame(
       a = c("x", "z", "y", "x", "z", "x", "x", "y", "x", "y"),
       b = c(29L, 4L, 15L, 28L, 41L, 25L, 41L, 15L, 6L, 17L),
       USUBJID = as.character(seq_len(10)),
       stringsAsFactors = FALSE
     ),
     "ADAE" = data.frame(
       a = c("x", "z", "y", "x", "z", "x", "x", "y", "x", "y"),
       c = c(1, NA, NA, 1, 2, NA, NA, 4, 3, 1),
        dates = seq(as.Date("2019-07-10"), as.Date("2019-08-12"), length.out = 10),
       USUBJID = as.character(seq_len(10)),
       stringsAsFactors = FALSE
     ) 
    )
  })
  
  opts <- reactiveValues(
    subjectDs = "ADSL",
    idvar = "USUBJID"
  )
  
  addFilter1$callModule()
  
  observe({
    # Add the options to the filter module
    opts %>2% addFilter1
    # Add the data to the filter module
    datalist %>1% addFilter1
  })
  
  output$filter_results <- renderPrint({
    filter_reactive <- addFilter1$getOutput("filter")
    str(filter_reactive())
  })
}
# Run the application 
shinyApp(ui = ui, server = server)

## End(Not run)

Novartis/subpat documentation built on April 11, 2020, 3:11 p.m.