Come so far: r shiny reactive gt_summary table
I would like to have a gtsummary table with selected variables from an SelectInput field in a reactive manner (Input$y). This is already achieved. Now I would like to choose the by= argument for gtsummary from a second reactive SelectInput field (Input$x). Tried a lot but without success. Thanks for any help.
My code:
library(shiny)
library(gtsummary)
library(gt)
# make dataset with a few variables to summarize
iris2 <- iris %>% select(Sepal.Length, Sepal.Width, Species)
# add fake factor column
iris2 <- iris2 %>%
mutate(Species_1 = Species)
shinyApp(
ui = fluidPage(
fluidRow(
column(12,
# Select variable to analyze
selectInput(inputId = "y",
label = "Y-Variable:",
choices = c("Sepal Length" ="Sepal.Length",
"Sepal Width" = "Sepal.Width"),
selected = "Sepal.Length"),
# select factor variable
selectInput(inputId = "x",
label = "Factor:",
choices = c("Species" = "Species",
"Other Species" = "Species_1"),
selected = "Species"),
gt_output('table')
)
)
),
server = function(input, output) {
varY <- reactive({
input$y
})
varX <- reactive({
input$x
})
output$table <- render_gt({
table1 <- iris2 %>% select(iris2, all_of(varY())) %>%
tbl_summary(by = varX()) %>%
add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>% as_gt()
})
})