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

标签 r shiny

即使我认为在 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/

相关文章:

r - dplyr 输出类 data.frame

r - 逐行乘以数据框

r - 当我使用我的 Shiny 小部件时,我的 ggplot 会调整大小 : how to stop this?

r - 计算 "rightmost"移动平均线?

javascript - 如何从 R Shiny 中的 JavaScript 获取屏幕分辨率?

r - 如何将 R Shiny UI 中的输入打印到控制台?

R - 在 data.table 中使用 glm

html - 为 checkboxGroupInput 选择着色

R Shiny : how to call a JavaScript function from a custom button inside a Datatable

r shiny 数据表有时不显示