R中updateSliderInput的舍入行为

R中updateSliderInput的舍入行为,r,shiny,R,Shiny,我试图使用下面的代码来使用第一个滑块来更新第二个滑块。但是,当调用updateSliderInput函数时,它似乎覆盖了原始sliderInput中的round=T。我知道,由于我在updateSliderInput函数中除以9,对于第一个滑块的某些值,步长将不是整数,但是有没有办法在重新计算的滑块中显示舍入值,这样我就不会得到16位精度 ui <- fluidPage( sidebarLayout( sidebarPanel( p("The first slide

我试图使用下面的代码来使用第一个滑块来更新第二个滑块。但是,当调用
updateSliderInput
函数时,它似乎覆盖了原始
sliderInput
中的
round=T
。我知道,由于我在
updateSliderInput
函数中除以9,对于第一个滑块的某些值,步长将不是整数,但是有没有办法在重新计算的滑块中显示舍入值,这样我就不会得到16位精度

ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      p("The first slider controls the second"),
      sliderInput(inputId = "value", label = "The independent slider",
                  min = 1000, max = 1500, value = 1000, step = 100, round = T
      ),
      sliderInput(inputId = "value2", label = "The dependent slider",
                      min = 5, max = 500, value = 50, round = T
      )
    ),
    mainPanel()
  )
)

server <- function(input, output, session) {
  observe({
    val <- input$value

    updateSliderInput(session, "value2", value = (val * 0.3),
                      min = (val * 0.005), 
                      max = (val * 0.5), 
                      step = floor((val * 0.5) - floor(val * 0.005))/9)

  })     
}

shinyApp(ui, server)

ui它是否像
round
ing您的
step=
值那样简单


server它是否像
round
ing您的
step=
值那样简单


服务器是的,这似乎有效。我可以发誓我试过了,或者类似的。谢谢。是的,这似乎管用。我可以发誓我试过了,或者类似的。谢谢
server <- function(input, output, session) {
  observe({
    val <- input$value

    updateSliderInput(session, "value2", value = (val * 0.3),
                      min = (val * 0.005), 
                      max = (val * 0.5), 
                      step = round(floor((val * 0.5) - floor(val * 0.005))/9, 1))

  })     
}