无法呈现数据表

拉加瓦·钦塔(Raghava Chinta)

我正在尝试将DataTable输出呈现给Shiny。请在下面找到我的用例说明:

  1. 连接到我的数据库,并将表数据转换为df变量。
  2. 将选择的输入从选择输入文本框中发送到服务器脚本。
  3. 服务器脚本应采用此输入并获取数据。

    用户界面

    library(shiny)
    library(RODBC)
    
    library(DBI)
    # Establishing connection to ORE environment
        dbconnect <- odbcConnect("orecloud", uid="XXXX", pwd="XXXXX", believeNRows=FALSE)
    # Preparing data frames to get the data and show in select input pick list
        df <- data.frame()
        df <- sqlQuery(dbconnect,"SELECT distinct cpan FROM TABLE ")
        shinyUI(fluidPage(
           headerPanel("ORE XXX Summary"),
        sidebarLayout(
        sidebarPanel(
          helpText("Please select Patient Details.."),
          selectInput("CPAN", 
                      label = "Choose patient",
                      choices = df,
                      selected = NULL),
        submitButton(text = "Submit", icon = NULL)),
        mainPanel(
        dataTableOutput("tableoutput")
        )
      )
    ))
    

服务器

  1. 服务器脚本应接受输入并从表中查询数据
  2. 将所选数据渲染到UI
  3. 如果我更改UI中的值,则它应显示选定的输入数据。

    library(RODBC)
    
    shinyServer(
      function(input, output) {
            dbconnect <- odbcConnect("orecloud", uid="oracle",     pwd="Edvenswa2016", believeNRows=FALSE)
            df2 <- data.frame()
            input_var <- input$CPAN
            print (input_var)
            my_query <- paste("select * from CYTOKINE where CPAN=  ", input_var)
            print(myquery)
            df2 <- sqlQuery(dbconnect,myquery)
            output$tableoutput <- renderDataTable({df2})
       }
    )
    
巴塔尼切克

你需要做它反应

df2=reactive({
input_var <- input$CPAN
my_query <- paste("select * from CYTOKINE where CPAN= ", input_var)
sqlQuery(dbconnect,myquery)
})

并使用像 renderDataTable({df2()}) } )

如果输入$ CPAN是字符,则需要 paste0("select * from CYTOKINE where CPAN= '", input_var,"'")

也不要忘记disconect

session$onSessionEnded(function() {
  odbcClose(dbconnect )
})

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章