Предположим, что приведенные ниже данные находятся в вашей таблице MySQL employees
, поскольку у меня нет фактических данных.
dput(employees)
structure(list(id = 1:12, names = structure(1:12, .Label = c("aa",
"bb", "cc", "dd", "ee", "ff", "gg", "hh", "ii", "jj", "kk", "ll"
), class = "factor"), year = c(2016, 2016, 2017, 2017, 2018,
2018, 2016, 2018, 2017, 2019, 2019, 2019)), .Names = c("id",
"names", "year"), row.names = c(NA, -12L), class = "data.frame")
Ниже приведенный код поможет вам в вашем требовании
library(shiny)
library(DBI)
library(pool)
pool <- dbPool(drv = RMySQL::MySQL(),dbname = "db_name",host = "localhost",username = "user_name",password = "password", port = 3306, unix.sock = "/var/run/mysqld/mysqld.sock")
ui <- fluidPage(
uiOutput("years"),
tableOutput("mytable")
)
server <- function(input, output, session) {
output$years <- renderUI({
unique_values2 <- c(2016:2019)
selectInput("year", "select year", choices = unique_values2)
})
results <- reactive({
df <- dbGetQuery(pool, paste0("SELECT * FROM employees WHERE year = ", input$year ," ;"))
return(df)
})
output$mytable <- renderTable(results())
}
shinyApp(ui, server)
Таквывод таблицы будет меняться в зависимости от года, который мы выбираем из выпадающего списка.