Ich erfahre unerwartetes Verhalten bei der Verwendung mehrerer reactiveVal in Shiny. Ich bin mir der Existenz von reactiveValues bewusst, die wahrscheinlich mein Problem lösen werden, aber ich möchte immer noch herausfinden, warum dieses Verhalten auftritt. Im folgenden Code, ich habe zwei reactiveVals:Unerwartete Reaktivität während der Verwendung mehrerer reactiveVal in Shiny
- reval1, die jede Sekunde
- reval2 aktualisiert wird, die nie Wert ändert.
my_plot ist nur von reval2 abhängig. Daher würde ich erwarten, dass es niemals ungültig wird. Die Handlung ändert sich jedoch jede Sekunde. In der documentation sehe ich keine Erwähnung der Unmöglichkeit, zwei reaktive Werte zu verwenden. Fehle ich etwas falsch oder übersehe ich etwas?
server <- function(input, output, session) {
set.seed(1)
reval1<- reactiveVal(runif(1)) # useful
reval2 <- reactiveVal(runif(1)) # useless
# update reval1 every second
autoInvalidate <- reactiveTimer(intervalMs = 1000, session = session)
observeEvent(autoInvalidate(),{
reval1(reval1()+1)
})
# plot is only dependent on reval2.
output$my_plot<- renderPlot({
a<- reval2()
df= data.frame(x=runif(10),y=runif(10))
plot(df$x,df$y)
})
}
ui <- shinyUI(
fluidPage(
plotOutput("my_plot")
)
)
shinyApp(ui,server)
Danke, ich dies nicht bewusst war. Ich habe meinen Code über eine Stunde lang debuggt ... – Florian
Da Sie eine Analytics-Firma haben, die auf glänzend basiert, wäre es gut für Sie, sich auch die github-Seite anzusehen, da sie dort neue Ausgaben haben. Abonnieren Sie auch diese Gruppe https://groups.google.com/forum/#!forum/shiny-discuss –
Vielen Dank für die Einführung in diese Gruppe, sehr nützlich. – Florian