2016-12-01 78 views
0

我的應用程序需要很長時間來計算,所以在第一次加載時,我想閃亮使用保存爲csv文件的默認數據。但是,我會喜歡用戶通過按動作按鈕來更新這些數據(以及所得到的圖)。我嘗試了一些配置。這是一個簡化版本與observeEvent的相似之處。如何使用Shiny中的操作按鈕更新默認的csv數據?

server.R

default_data <- read.csv("./default_data.csv") 

function(input, output) { 

    # Load default 
    data <- reactive(default_data) 

    # I wish this could get it to update 
    observeEvent(input$goButton, { 
    data <- rnorm(100, input$recid_rate) 
    }) 

    # Plot 
    output$plot <- renderPlot({ 

    hist(data()) 

    }) 

} 

我也有到默認的數據加載和ggplot被visulized。但是操作按鈕似乎不會覆蓋默認數據。預先感謝您的想法!

回答

1

你的問題是,data應該回應2個不同的reactive陳述,不知道該怎麼辦。 Here是一個相關的問題。

1解決這一問題的方式,使一個reactiveValues對象保存數據:

rv<-reactiveValues(data=default_data) 

然後與observeEvent更新:

observeEvent(input$goButton, { 
    rv$data <- rnorm(100, input$recid_rate) 
    }) 

和使用它的情節:

output$plot <- renderPlot({ 
    hist(rv$data) 
    }) 
相關問題