2017-09-14 3 views
0

が、私はcsvファイルをユーザーに尋ねるで何が起こるこのupdateSelectInputは

server <- shinyServer(function(input, output, session) { 
library(readr) 
data <- reactive({req(input$file1) 
inFile <- input$file1 
df <- as.data.frame(read_csv(inFile$datapath)) # read in data 

updateSelectInput("do stuff") #change what happens in the plot based on selection 


return(df) 
    }) 

output$priceCurve <- renderPlot({ 
"do plot stuff" #plot stuff based on upDateSelectInput above 

}) 
}) 

ようになり、基本的なサーバーの構造を持って再実行します。彼らは1つをアップロードします。選択に基づいて、それらはcsvによって生成されたデータフレームをサブセット化してプロットします。

問題は、ユーザーがドロップダウンオプションを選択するたびに、アプリケーションがcsvを読み込むことです。それは複数回行う必要はありません。私はそれをメモリに保存し、その選択に基づいてデータフレームの操作を行うだけです。選択が行われるたびにデータを読み込ませたくありません。

答えて

1

これは再現可能な例なしで動作しますが、この

isolate()であなたの読み取りファイルのステートメントをラップしようとするかどうかを確認するためにタフ。これは、これらのステートメントがinput$file1(私は思う)にのみ依存するはずですが、データはまだupdateSelectInput("do stuff")(私は思う)に対して反応するでしょう。

server <- shinyServer(function(input, output, session) { 
    library(readr) 
    data <- reactive({ 
     isolate(req(input$file1) 
       inFile <- input$file1 
       df <- as.data.frame(read_csv(inFile$datapath)) 
       ) # read in data 

     updateSelectInput("do stuff") #change what happens in the plot based on selection 

     return(df) 
    }) 

    output$priceCurve <- renderPlot({ 
          "do plot stuff" #plot stuff based on upDateSelectInput above 
         }) 
}) 
+0

これは適切な試みですが、renderPlotとupdateSelectInputによって出力が生成されません。私は実証するために完全に再現可能な例を作りようとします。 –

関連する問題