我正在努力理解如何使 2 个 R Shiny 小部件相互更新。例如,一个滑块小部件可以更新文本框小部件,反之亦然,最终用户可以选择使用任一小部件。
这个问题类似,但没有答案,所以我将提供一个(希望)更简单的例子。 shiny :: reactive()推断的反应依赖项的检索。如果此问题已在其他地方得到回答,则我无法找到这样的答案。
我想知道是否可以将 slider1 移动到 slider2 并将 slider2 移动到 slider1。现在我只能完成第一部分(我可以移动 slider1 以移动 slider2)。如果我可以做到这一点,我认为我可以将 widget 1 设为滑块,并将 widget 2 设为数字输入,其代码基本相同。
以下示例是从 http://shiny.rstudio.com/gallery/update-input-demo.html 修改而来的,这是我能做到的最简化的示例。这也是我能找到的唯一一个接近我所需求的应用程序,尽管我意识到可能需要一种非常不同的方法...
这个问题类似,但没有答案,所以我将提供一个(希望)更简单的例子。 shiny :: reactive()推断的反应依赖项的检索。如果此问题已在其他地方得到回答,则我无法找到这样的答案。
我想知道是否可以将 slider1 移动到 slider2 并将 slider2 移动到 slider1。现在我只能完成第一部分(我可以移动 slider1 以移动 slider2)。如果我可以做到这一点,我认为我可以将 widget 1 设为滑块,并将 widget 2 设为数字输入,其代码基本相同。
以下示例是从 http://shiny.rstudio.com/gallery/update-input-demo.html 修改而来的,这是我能做到的最简化的示例。这也是我能找到的唯一一个接近我所需求的应用程序,尽管我意识到可能需要一种非常不同的方法...
Server.R 代码
shinyServer(
function(input, output, clientData, session) {
#### one way interaction between slider 1 and 2 ####
observe({![enter image description here][1]
c_label <- input$control_label
c_num <- input$control_num # <- input$inSlider
# Slider input =============================================
updateSliderInput(session, "inSlider",
label = paste("Slider2", c_label),
value = c_num)
updateSliderInput(session, "control_num",
label = paste("Slider1", c_label),
value = c_num)
})
})
Ui.r 代码
shinyUI(fluidPage(
titlePanel("One Way Reactive Slider"),
fluidRow(
column(3,
wellPanel(
h4("Slider Inputs"),
sliderInput("control_num",
"This controls values:",
min = 1, max = 20, value = 15),
sliderInput("inSlider", "Slider input:",
min = 1, max = 20, value = 15)
))
)
))