[英]Rounding behavior of updateSliderInput in R shiny
我正在嘗試使用以下 R Shiny 代碼來使用第一個滑塊來更新第二個滑塊。 但是,當調用updateSliderInput
函數時,它似乎覆蓋了原始sliderInput
的round = T
。 我知道,因為我在updateSliderInput
函數中除以 9,所以第一個滑塊的某些值的步長不會是整數,但是有沒有辦法在重新計算的滑塊中顯示舍入值,以便我不t 獲得 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)
現在,無論我嘗試什么,我都會看到這一點:
是否像將step=
值round
一樣簡單?
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))
})
}
您也可以floor
或ceiling
,甚至使用signif
來獲得總位數(而不是round
,它在小數點后進行數字)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.