在Shiny中使用selectInput函数时,在最小值和最大值之间跳过值

时间:2015-06-09 00:15:45

标签: r shiny

我正在开发一个Shiny应用程序,我想知道是否可以跳过selectInput函数中传递的最小值和最大值之间的一个值。我有这个:

sliderInput(inputId="timeseries.year", label="Select Year or press play:",  min=1970, max=2011, value=1994, step = 1,sep="",                 animate=animationOptions(interval=700,loop=F)

所以min是1970年,最大值是2011年,我想排除1993年的值(因为它缺失了)。如果有办法,请告诉我!

1 个答案:

答案 0 :(得分:0)

看起来shiny使用ion rangeslider作为其inputSlider。查看文档,看起来可能有自定义值,可以通过在初始化之前添加data-values属性,也可以在初始化之后更新滑块。这是实现第二种方法的一种非常黑客的方法。它可能更清晰,但基本上我正在做的是添加JavaScript,在应用程序初始化后5毫秒更新滑块的values参数。我正在做这个hacky 5毫秒的事情只是因为我不知道什么是正确的方式来知道闪亮准备好了。必须有一种更清晰的方法来确定何时进行该调用,但更新滑块的想法仍然存在。希望这有帮助

library(shiny)
JScode <-
  "$(function() {
    setTimeout(function(){
      $('#myslider').data('ionRangeSlider').update({'values':[1,2,3,5]})
    }, 5)})"

runApp(shinyApp(
  shinyUI(fluidPage(
    tags$head(tags$script(JScode)),
    sliderInput("myslider", "Slider", 1, 5, 3)
  )),
  server = function(input,output,session) {

  }
))