即使我认为在 Shiny 中有很多主题涉及 sliderInput 的属性,但我找不到解决我正在尝试做的事情的方法。
我的问题很简单:我想调整我的代码(见下文)以创建一个间隔为“10”(从 0 到 10、10 到 20、3 到 13 等...)的 slider
###running example:
ui <-basicPage(
sliderInput("id", "Ranking",
min = 2, max = 60, value = c(2,15)))
server <- server <- function(input, output) {}
shinyApp(ui, server)
有什么想法吗?
最佳答案
每次 slider 更改时,您都可以调用 updateSliderInput
,以强制执行间隔。
这里的技巧是记住以前的值来更新正确的处理程序(没有改变的那个)
INTERVAL = 13
value = c(2, 2 + INTERVAL)
ui <-basicPage(
sliderInput("id", "Ranking",
min = 2, max = 60, value = value))
server <- server <- function(input, output, session) {
observeEvent(input$id,{
newvalue = input$id
if(value[1] != newvalue[1] && newvalue[2] - newvalue[1] != INTERVAL)
updateSliderInput(session, "id", value = c(newvalue[1], newvalue[1] + INTERVAL))
if(value[2] != newvalue[2] && newvalue[2] - newvalue[1] != INTERVAL)
updateSliderInput(session, "id", value = c(newvalue[2] - INTERVAL, newvalue[2]))
value <<- newvalue
})
}
shinyApp(ui, server)
关于r - 在 Shiny 中为 sliderInput 定义特定范围的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64357406/