R闪亮滑块输入范围受限 [英] R shiny sliderInput with restricted range

查看:17
本文介绍了R闪亮滑块输入范围受限的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

当然,我现在可以在slderInput选项中定义min=1、max=10,但这样我将只得到一个值在此间隔内的滑块。

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

推荐答案

在上一个问题的基础上,您可以使用最小值,此处滑块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))

这篇关于R闪亮滑块输入范围受限的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆