Shinyの反応性の振る舞いについて、下の簡単なコードを例にして明確にしたいと考えています。Shiny Reactivity Explaination(ObserveEventを使用)
アプリでyが更新されると、グラフが更新されます。
xがアプリで更新されると、グラフは更新されません。
Shinyのチュートリアルを読んでいます。私はobserveEventにtest()とplot()関数の両方をラップしているので、両方のパラメータによってグラフが更新されるべきではありません。
誰かがこの背後にある論理を説明するのに役立つことができますか?あなたがrenderPlot
の内側にラインx = test(input$x)
を置く場合
library(shiny)
test <- function(x){x*2}
shinyServer(function(input, output, session) {
observeEvent(input$run, {
x = test(input$x)
output$distPlot <- renderPlot({
if(input$y){
x = x+2
}
plot(x)
})
})
})
shinyUI(fluidPage(
sidebarLayout(
sidebarPanel(
numericInput("x", "x:", 10),
checkboxInput("y", label = "y", value = FALSE),
actionButton("run", "run")
),
mainPanel(
plotOutput("distPlot")
)
)
))
本当にありがとうございました。今やたくさんの意味がある – hjw