在Shiny中为sliderInput定义值的特定范围

琳达

甚至认为在Shiny中有很多主题与sliderInput的属性有关,我也找不到解决方案。

我的问题很简单:我想修改我的代码(见下文),以创建间隔为“ 10”(从0到10、10到20、3到13等)的滑块。

###running example: 

ui <-basicPage(
  sliderInput("id", "Ranking",
                           min = 2, max = 60, value = c(2,15)))


server <- server <- function(input, output) {}

shinyApp(ui, server)

有什么想法吗?

休伯特

您可以在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)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档