如何使用滑块输入在 R Shiny 中输入超过 2 个值

Posted

技术标签:

【中文标题】如何使用滑块输入在 R Shiny 中输入超过 2 个值【英文标题】:How to use sliderInput to to input more than 2 values in Rshiny 【发布时间】:2017-01-03 16:53:21 【问题描述】:

传统上,sliderInput 函数是

sliderInput(inputId, label, min, max, value, step = NULL, round = FALSE, format = NULL, 
locale = NULL, ticks = TRUE, animate = FALSE, width = NULL, sep = ",", 
pre = NULL, post = NULL, timeFormat = NULL, timezone = NULL, dragRange = TRUE)

如果我指定

sliderInput("range","range",min=-3,max=3,value=c(-1,1))

它输入一个从-1到1的范围。但是,有一个函数接受参数格式为days_included=c(-2,-1,0,1,2)。在这种情况下,如果我设置,我将无法使此功能工作

sliderInput("range","range",min=-3,max=3,value=c(-2,2)) 

因为它并不真正符合所需的格式。所以这是我的问题,无论如何要使此功能起作用?我在sliderInput 中尝试了“step”参数,但失败了。

【问题讨论】:

【参考方案1】:

您的滑块会返回两个值,如果您想在其间包含所有整数,则必须使用这些值和:seq 函数创建一个序列。

所以基本上你需要input$range[1]:input$range[2]


简单示例:

library(shiny)
rm(ui) ; rm(server)

ui <- fluidPage(
  br(),
  sliderInput("range","range",min = -3, max = 3, value = c(-2, 2)),
  div(verbatimTextOutput("out1"), style = "width: 300px;")
)

server <- function(input, output)  

  output$out1 <- renderText(
    # seq.int(from = input$range[1], to = input$range[2])
    input$range[1]:input$range[2]
  )


shinyApp(ui, server)

【讨论】:

你可能会接受答案并表达爱意:) 总是忘记这样做,对不起:)

以上是关于如何使用滑块输入在 R Shiny 中输入超过 2 个值的主要内容,如果未能解决你的问题,请参考以下文章

R Shiny 输入滑块范围值

使用inputBox的输出作为R Shiny中inputSlider的输入

Shiny R仅绘制滑块范围的极值

在 Shiny 中使用带有 ion.RangeSlider 滑块输入的日期

使用 R/Shiny 创建动态数量的输入元素

在R Shiny中,如何用observe替换observeEvent?