Поведение округления updateSliderInput в R блестящий - PullRequest
0 голосов
/ 14 февраля 2020

Я пытаюсь использовать следующий код 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)

Прямо сейчас я вижу это, что бы я ни пытался:

What I see in the recalculated slider as-is

1 Ответ

2 голосов
/ 15 февраля 2020

Это так же просто, как просто round ввести ваши step= значения?

enter image description here

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, которое действительно после десятичной дроби).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...