#' summarytable UI Function
#'
#' @description A shiny Module.
#'
#' @param id,input,output,session Internal parameters for {shiny}.
#'
#' @noRd
#'
#' @importFrom shiny NS tagList
mod_summarytable_ui <- function(id){
ns <- NS(id)
tagList(
shiny.semantic::dropdown_input(ns('tosumvars'),
choices = names(dataset)[2:18],
default_text = 'Select Variable to summarize',
type = 'multiple'),
shiny.semantic::dropdown_input(ns('groupvar'),
choices = c('Group Variable: No selection',names(dataset)[2:18]),
default_text = 'Select Grouping Variable',
value = 'Group Variable: No selection'),
shiny.semantic::dropdown_input(ns('stratavar'),
choices = c('Strata variable: No selection',names(dataset)[2:18]),
default_text = 'Select Strata Variable',
value = 'Strata variable: No selection'),
shiny::tableOutput(ns('summarytable'))
)
}
#' summarytable Server Functions
#'
#' @noRd
mod_summarytable_server <- function(id){
moduleServer( id, function(input, output, session){
ns <- session$ns
output$summarytable <- renderTable({
if(input[['groupvar']] == 'Group Variable: No selection' & input[['stratavar']] == 'Strata variable: No selection'){
shiny::req(input[['tosumvars']])
table_one <- arsenal::tableby( arsenal::formulize(x = input[['tosumvars']]),
data = dataset,
control = arsenal::tableby.control(
test = FALSE)
)
as.data.frame(summary(table_one,text = TRUE), text = "html")
} else if (input[['groupvar']] != 'Group Variable: No selection' & input[['stratavar']] == 'Strata variable: No selection'){
shiny::req(input[['tosumvars']])
shiny::req(input[['groupvar']])
table_one <- arsenal::tableby( arsenal::formulize(y = input[['groupvar']],
x = input[['tosumvars']]),
data = dataset,
control = arsenal::tableby.control(
test = FALSE)
)
as.data.frame(summary(table_one,text = TRUE), text = "html")
} else if (input[['groupvar']] == 'Group Variable: No selection' & input[['stratavar']] != 'Strata variable: No selection'){
shiny::req(input[['tosumvars']])
shiny::req(input[['stratavar']])
table_one <- arsenal::tableby( arsenal::formulize(x = input[['tosumvars']]),
strata = eval(as.name(input[['stratavar']])),
data = dataset,
control = arsenal::tableby.control(
test = FALSE)
)
as.data.frame(summary(table_one,text = TRUE), text = "html")
} else if (input[['groupvar']] != 'Group Variable: No selection' & input[['stratavar']] != 'Strata variable: No selection'){
shiny::req(input[['tosumvars']])
shiny::req(input[['groupvar']])
shiny::req(input[['stratavar']])
table_one <- arsenal::tableby( arsenal::formulize(y = input[['groupvar']],
x = input[['tosumvars']]),
data = dataset,
strata = eval(as.name(input[['stratavar']])),
control = arsenal::tableby.control(
test = FALSE)
)
as.data.frame(summary(table_one,text = TRUE), text = "html")
}
}, sanitize.text.function = function(x) x)
})
}
## To be copied in the UI
# mod_summarytable_ui("summarytable_ui_1")
## To be copied in the server
# mod_summarytable_server("summarytable_ui_1")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.