0

光沢のある updateSelectInput を作成しましたが、機能しています。しかし、新しい入力を出力の変数として使用できなくなった後... 入力は常に空です。Ui.R の SelectInput と server.R の更新のコードを示します。更新はアクセスデータベースを介して行われるため、これ以上は言えません。そして、例のためだけにdata.frameを作成すると、うまくいきます...

selectInput("indic","Indicateur :",
                                    choices = NULL,selected = NULL),

observeEvent(input$Source,{
          indicateurs<-as.character(voila_source(input$Source)$Indice)


          updateSelectInput(session,"indic",
                            choices = indicateurs)
     })

output$summary<-renderTable({     
          information<-voila_source(input$Source)
          information<-information[,-1]
          indica<-input$indic   ##here is empty...
          print(indica)
          description<-filter(information,Indice==indica)
          description
     })

たぶん私は何かを忘れました、私は知りません。入力を選択し、選択した入力に対応する data.frame を出力します。

編集:答えが見つかりました

わかりました私のコードとあなたのコードは機能します...送信ボタンを押す必要があります...しかし、そのために送信ボタンを押したくありません。selectInputをクリックして出力を印刷したいだけです。これが必要な場合は、ボタンを押してグラフを表示します。

エラー、送信ボタンが見つかりました。アクションボタンに置​​き換えましたが、機能しています...送信ボタンとアクションボタンについて知りませんでした。

それがあなたを助けることができれば、これはアクセスデータベースとすべてのserver.Rコードとui.Rコードを呼び出すための私のコードです:

    library(shiny)
    library(anytime)
    library(plotly)
    library(ggplot2)
    library(dplyr)
    library(RODBC)
    library(ecb)


    channel<-odbcConnectAccess("H:\\Analyse Macro\\Base Macro live.mdb")
    listee<-sqlQuery(channel,paste("Select * from Liste_source"))
    liste_server<-list()
    for (i in 1:length(listee$Table)){
         liste_server[i]<-as.character(listee$Table[i])
    }
    names(liste_server)<-as.character(listee$Table)

    for (i in 1:length(listee$Table)){
         liste_server[[i]]<-sqlQuery(channel,paste("Select * from ",liste_server[i]))
    }

    voila_source<-function(selection){
         x<-as.character(selection)
         liste_donnee<-liste_server[[x]]
         #liste_donnee<-as.character(liste_donnee$Indice)
         liste_donnee$Indice<-as.character(liste_donnee$Indice)
         liste_donnee$Description<-as.character(liste_donnee$Description)
         liste_donnee$Unite<-as.character(liste_donnee$Unite)
         liste_donnee$Frequence<-as.character(liste_donnee$Frequence)
         liste_donnee$Code<-as.character(liste_donnee$Code)
         liste_donnee$Pays<-as.character(liste_donnee$Pays)

         liste_donnee
    }



    # Define server logic required to draw a histogram
    shinyServer(function(input, output,session) {




         observeEvent(input$Source,{
              indicateurs<-as.character(voila_source(input$Source)$Indice)


              updateSelectInput(session,"indic",
                                choices = indicateurs)
         })


         output$summary<-renderTable({     
              information<-voila_source(input$Source)
              information<-information[,-1]
              reactives$indica<-input$indic
              print(reactives$indica)

              description<-filter(information,Indice==reactives$indica)
              description<-data.frame(test=indica)
              description
         })

    })


ui.R

    library(shiny)
    #library(quantmod)
    library(lubridate)
    library(plotly)
    library(ggplot2)
    library(RODBC)

    channel<-odbcConnectAccess("H:\\Analyse Macro\\Base Macro live.mdb")
    liste<-sqlQuery(channel,paste("Select * from Liste_source"))
    liste<-as.character(liste$Table)

    # Define UI for application that draws a histogram
    #shinyUI(fluidPage(
    ui<-tagList(
         navbarPage(
              "Evolutions Economiques",
              tabPanel("Observation",
                       # Application title
                       titlePanel("Evolutions Economiques"),

                       # Sidebar with a slider input for number of bins
                       #sidebarLayout(
                       sidebarPanel(
                            h1("Selection des donnees"),
                            selectInput("Source","Source :",
                                        choices =liste),
                            selectInput("indic","Indicateur :",
                                        choices = NULL,selected = NULL),
                            selectInput("pays","Pays :",
                                        choices = NULL),
                            selectInput("partenaire","Partenaire :",
                                        choices = NULL),
    #### replace by actionbutton submitButton("Ajouter"),
    actionButton("add","Ajouter"),
                            hr(),
                            img(src="logo.png",height=80,width=200),
                            br(),
                            br(),
                            helpText("Application realisee pour l'exploration des donnees macroeconomiques")
                       ),

                       # Show a plot of the generated distribution
                       mainPanel(
                            tabsetPanel(type="tabs",
                                        tabPanel("Description",tableOutput("summary"))
                                                 #,
                                        #plotlyOutput("graph"))
                       ))
              ),

              tabPanel("Extraction",
                       sidebarPanel(

                            selectizeInput("Index","Indice",c("ok")),
                            textInput("Nom","Nom fichier"),
                            actionButton("save","Sauver"),
                            hr(),
                            img(src="logo.png",height=80,width=200),
                            br(),
                            br(),
                            helpText("Application realisee pour l'exploration des donnees macroeconomiques")
                       ),

                       mainPanel(
                            tabsetPanel(type="tabs",
                                        tabPanel("liste",tableOutput("source")))
                       )


              ))
    )
4

1 に答える 1