2017-10-16 4 views
0

いくつかのパラメータ(textInputなど)を読み取り、それに応じてデータフレームを変更する小さなアプリケーションを作成しようとしていますが、実際に入力を読み取っていないようです。Shiny appのテキスト入力に関する問題

アプリを開くと、パラメータを挿入し、[何も起こらない]をクリックしてもデータフレームが表示されません。私もobserveEventを使ってみましたが、どちらもうまくいきませんでした。なぜ私はselectInputのための同じコード構造を使用し、すべてが正常に働いた理由を理解できません。

私は小さな再現性の例を作成しました:

div(style = 'overflow-x: scroll', tableOutput('table')) 

だから私はあなたに​​ようDifferenceを参照しなければならなかったも、それをコメントアウト:

library(shiny) 
library(shinydashboard) 
library(data.table) 
library(DT) 
library("RJDBC") 
library("RODBC") 

## 
ui <- shinyUI(pageWithSidebar(
    headerPanel("DBC Comparison"), 
    sidebarPanel(
    textInput("Database_1", "Database 1"), 
    textInput("Database_2", "Database2"), 
    textInput("odbc", "ODBC Name"), 
    textInput("user", "Username"), 
    textInput("pwd", "password" 
      ), 
    actionButton(
     inputId = "submit_loc", 
     label = "Submit") 
), 

    mainPanel(
    DT::dataTableOutput("table"), 
    div(style = 'overflow-x: scroll', tableOutput('table')) 

) 
)) 


## 
server <- shinyServer(function(input, output, session) { 


    Difference = reactive({ 

    df <- data.frame(user = input$user, pwd =input$pwd, db2=input$Database_2, db1=input$Database_1) 
     return(list(df=df)) 

    }) 


    output$table = DT::renderDataTable(server = TRUE,{ 
    DT::datatable(Difference, 
        extensions=c("Buttons",'Scroller'), 
        options = list(dom = 'Bfrtip', 
           buttons = c('copy', 'csv', 
              'excel', 'pdf', 
              'print'), 
           scrollY = 500, 
           scroller = TRUE) 
    ) 
    }) 

}) 
## 
shinyApp(ui = ui, server = server) 

答えて

2

は問題がでおそらくだったように思えますデータテーブル呼び出し。そして、そのデータテーブルを変更することは、次のように依存しています。eventReactive(input$submit_loc,{expr})

library(shiny) 
library(shinydashboard) 
library(data.table) 
library(DT) 
library("RJDBC") 
library("RODBC") 

## 
ui <- shinyUI(pageWithSidebar(
    headerPanel("DBC Comparison"), 
    sidebarPanel(
    textInput("Database_1", "Database 1"), 
    textInput("Database_2", "Database2"), 
    textInput("odbc", "ODBC Name"), 
    textInput("user", "Username"), 
    textInput("pwd", "password" 
    ), 
    actionButton(
     inputId = "submit_loc", 
     label = "Submit") 
), 

    mainPanel(
    DT::dataTableOutput("table")#, 
    #div(style = 'overflow-x: scroll', tableOutput('table')) 

) 
)) 


## 
server <- shinyServer(function(input, output, session) { 


    Difference = eventReactive(input$submit_loc,{ 

    df <- data.frame(user = input$user, pwd =input$pwd, db2=input$Database_2, db1=input$Database_1) 
    return(df) 

    }) 


    output$table = DT::renderDataTable(server = TRUE,{ 
    DT::datatable(Difference(), 
        extensions=c("Buttons",'Scroller'), 
        options = list(dom = 'Bfrtip', 
           buttons = c('copy', 'csv', 
              'excel', 'pdf', 
              'print'), 
           scrollY = 500, 
           scroller = TRUE) 
    ) 
    }) 

}) 
## 
shinyApp(ui = ui, server = server) 
関連する問題