如何使用Shiny中的操作按钮更新默认的csv数据?

时间:2016-12-01 18:26:21

标签: r shiny

我的应用需要很长时间来计算,所以在第一次加载时,我希望闪亮使用保存为csv文件的默认数据。但是,我希望用户能够通过按下操作按钮来更新此数据(以及生成的图表)。我尝试了一些配置。以下是observeEvent的简化版本。

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中进行可视化。但是操作按钮似乎不会覆盖默认数据。提前感谢您的想法!

1 个答案:

答案 0 :(得分:1)

您的问题是data应该响应2个不同的reactive语句,并且不知道该怎么做。 Here是一个相关问题。

解决此问题的一种方法是创建一个包含数据的reactiveValues对象:

rv<-reactiveValues(data=default_data)

然后使用observeEvent

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

并将其用于情节:

 output$plot <- renderPlot({
    hist(rv$data)
  })