mysql - 如何从mysql到 Shiny 的表中读取数据

标签 mysql r shiny rmysql

我正在尝试构建一个 Shiny 的应用程序。我在数据库中有 3 个表。该应用程序将从 MySQL 检索数据表并在 Web 界面上弹出。在 ui 功能中提到了所有选择。从我的 MySQL 检索数据时,我写了 3 次 readtable 命令。是否有任何选项可以从一个可读语句中检索数据?

library(shiny)

# Define UI for dataset viewer application
ui<-fluidPage(

  # Application title.
  titlePanel("More Widgets"),

  sidebarLayout(
    sidebarPanel(
      selectInput("dataset", "Choose a dataset:", 
                  choices = c("table1", "table2","table3")),

      numericInput("obs", "Number of observations to view:", 10),

      submitButton("Update View")
    ),

    mainPanel(

      h4("Observations"),
      tableOutput("view")
    )
  )
)

# Define server logic required to summarize and view the 
# selected dataset
server<-function(input, output) {

    conn <- dbConnect(drv = RMySQL::MySQL(),dbname = "xxx",host = "localhost",
    username = "root",password = "yyy")
    on.exit(dbDisconnect(conn), add = TRUE)
    table1<- dbReadTable(conn = conn,  name = 'table1', value = as.data.frame(table1))
    table2<- dbReadTable(conn = conn,  name = 'table2', value = as.data.frame(table2))
    table3<- dbReadTable(conn = conn,  name = 'table3', value = as.data.frame(table3))

  # Return the requested dataset
  datasetInput <- reactive({
    switch(input$dataset,
           "table1" = table1,
           "table2" = table2,
        "table3" = table3
           )
  })

  # Show the first "n" observations
  output$view <- renderTable({
    head(datasetInput(), n = input$obs)
  })
        on.exit(dbDisconnect(conn), add = TRUE)

}
shinyApp(ui, server)

最佳答案

for() 函数可能有效:

data <- c('table1', 'table2', 'table3')

list_data <- list()

for(i in 1:length(data)) {list_data[i] <- dbReadTable(conn = conn,  name = data[i], value = as.data.frame(table1))}

关于mysql - 如何从mysql到 Shiny 的表中读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38408756/

相关文章:

MySQL通过UPDATE/DELETE合并重复数据记录

python - 如何在 rpy2 中将列表传递给 R 并返回结果

r - 在 R shiny 中,如何在 UI 端使用在服务器端计算的值?

r - Shiny 的模块不适用于 renderUI

php - symfony 1.4 中的嵌入式表格无法正确保存

mysql - 从一个表复制数据,将其格式化为另一个表

r - 在 R 中使用 Merge 组合 2 个聚合

r - 从单个图像中的单个数据帧绘制许多线图

Radiant R 无法在 Shiny 的服务器上运行

mysql - (为什么?)Greatest+Coalesce 方式比使用 or 的单个选择更快