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))
})
}