如何在反应对象上应用reactive()?

时间:2017-04-05 16:01:56

标签: r shiny

我想在闪亮的应用中绘制图表。然后我想在同一个图表上添加多个阴影。在我向您展示我的代码之前,让我定义我的样本数据。

dg= reactive ({dygraph(X1(), main ="interactive graph",
              xlab = "time frame",
              ylab = "records" ) %>% dyRangeSelector()  }) 

# I have a table for the shades to be added, it's defined with reactive

shade_tab=reactive({ Panne[Panne$Equipement==input$machine,] })  

# add shades

for( i in 1:nrow(shade_tab())) 
       { dg()= reactive({
               dyShading(dg(), from= shade_tab()$Date[i],
                               to  = shade_tab()$Date[i] + 24*60*60 , 
                             color = 'black'                                
                       })
       } 

  output$dygraph <- renderDygraph({ dg()() })

这是我试图运行的代码,但它不起作用。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

必须在反应环境中调用反应式表达式。因此,shade_tab()不会在for中起作用,因为它不属于被动环境。你可以解决这个问题,将for包裹在observe内。

https://shiny.rstudio.com/articles/的基础部分非常好地解释了这一点:)