R 闪亮滑块输入范围受限

R_F*_*F92 5 r shiny

在我的 R 闪亮滑块输入中,我想限制具有较大最大值的给定滑块的输入范围。例如,假设输入必须在区间 [1:10] 内。

当然,我现在可以在 sliderInput 选项中定义 min=1, max= 10,但是我将只得到一个带有此间隔值的滑块。

我的目标是在 [1:50] 中看到一个带有值的滑块(例如),但用户只能在 [1:10] 间隔内移动此滑块。这将使我的应用程序变得更好。这可能吗?

Por*_*hop 5

从上一个问题开始,您可以使用最小值,此处滑块 1 限制为最大 80,滑块 2 限制为 50

rm(list = ls())
library(shiny)

slider1limit <- 80
slider2limit <- 50

ui <-pageWithSidebar(

  # Application title
  headerPanel("Sliders should sum to 100!"),
  # Sidebar with sliders whos sum should be constrained to be 100
  sidebarPanel(
    sliderInput("slider1", "Slider 1: ", min = 0, max = 100, value = 0, step=1),
    uiOutput("slider")),

  # Create table output
  mainPanel(tableOutput("restable"))
)

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

  observeEvent(input$slider2,{
    values <- min((100 - input$slider2),slider1limit)
    updateSliderInput(session, "slider1", min =0,max=100, value = values)
  })
  output$slider <- renderUI({
    values <- min((100 - input$slider1),slider2limit)
    sliderInput("slider2", "Slider 2: ", min=0,max=100, value = values)
  })

  output$restable <- renderTable({
    myvals<- c(input$slider1, input$slider2, 100-input$slider1-input$slider2)
    data.frame(Names=c("Slider 1", "Slider 2", "Slider 3"),Values=myvals)
  })
}
runApp(list(ui = ui, server = server))
Run Code Online (Sandbox Code Playgroud)


Sté*_*ent 5

您可以使用from-minfrom-maxdata 属性。这就需要修改sliderInput函数。

sliderInput2 <- function(inputId, label, min, max, value, step=NULL, from_min, from_max){
  x <- sliderInput(inputId, label, min, max, value, step)
  x$children[[2]]$attribs <- c(x$children[[2]]$attribs, 
                               "data-from-min" = from_min, 
                               "data-from-max" = from_max, 
                               "data-from-shadow" = TRUE)
  x
}

ui <- fluidPage(
  sliderInput2("slider", "Slide:",
              min = 0, max = 100, value = 50, step = 5, from_min = 20, from_max = 80
  )
)

server <- function(input, output) {}

shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

由于from-shadow数据属性,有一个部分显示可用范围。