Я пытаюсь использовать следующий код R Shiny, чтобы использовать первый слайдер для обновлений во втором слайдере. Однако, когда вызывается функция updateSliderInput
, она, кажется, перезаписывает round = T
в исходном sliderInput
. Я знаю, что, поскольку я делю на 9 в функции updateSliderInput
, размер шага не будет целым числом для некоторых значений первого ползунка, но есть способ показать округленное значение в пересчитанном ползунке, чтобы я не получается 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)
Прямо сейчас я вижу это, что бы я ни пытался: