gpt4 book ai didi

r - 以 react 方式更新 Shiny 中的 sliderInput

转载 作者:行者123 更新时间:2023-12-01 12:24:55 24 4
gpt4 key购买 nike

我正在尝试更改 sliderInput 中的值动态的。现在的困难是我想从 sliderInput一个值,到 sliderInput有一个范围,这似乎不起作用。

下面代码中的第一个操作按钮可以工作,而第二个操作按钮则不能正常工作。

是切换到uiOutput 的唯一可能性吗?元素?

代码

library(shiny)
app <- shinyApp(
ui = bootstrapPage(
sliderInput("sld1", min = 0, max = 10, label = "y1", value = 5),
actionButton("acb1", "Change Value"),
actionButton("acb2", "Change Value to Range")
),
server = function(input, output, session) {
observeEvent(input$acb1, {
updateSliderInput(session, "sld1", value = 2)
})
observeEvent(input$acb2, {
updateSliderInput(session, "sld1", value = c(2,7))
})
})
runApp(app)

最佳答案

您可以使用 renderUI 动态添加 slider

#rm(list = ls())
library(shiny)
app <- shinyApp(
ui = bootstrapPage(
uiOutput("myList"),
actionButton("acb1", "Change Value"),
actionButton("acb2", "Change Value to Range")
),
server = function(input, output, session) {

slidertype <- reactiveValues()
slidertype$type <- "default"

observeEvent(input$acb1,{slidertype$type <- "normal"})
observeEvent(input$acb2, {slidertype$type <- "range"})

output$myList <- renderUI({

if(slidertype$type == "normal"){
sliderInput("sld1", min = 0, max = 10, label = "y1", value = 2)
}
else if(slidertype$type == "range"){
sliderInput("sld1", min = 0, max = 10, label = "y1", value = c(2,7))
}
else{
sliderInput("sld1", min = 0, max = 10, label = "y1", value = 5)
}
})
})
runApp(app)

关于r - 以 react 方式更新 Shiny 中的 sliderInput,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40863663/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com