R блестящий numericInput шаг и минимальное значение взаимодействия - PullRequest
0 голосов
/ 13 мая 2018

Рассмотрим следующий числовой виджет в приложении R Shiny:

numericInput("val", "Enter value:", value = 50, min = 0, step = 5)

Если вы нажмете стрелки вверх / вниз в виджете при запуске приложения, значение увеличится или уменьшится на 5 (0, 5, 10, 15, ...), как и ожидалось.

Теперь рассмотрите возможность изменения минимального значения на 1:

numericInput("val", "Enter value:", value = 50, min = 1, step = 5)

Если вы теперь нажимаете стрелки вверх / вниз,значение все равно будет увеличиваться / уменьшаться на 5, но начинаться с 1, создавая последовательность 1, 6, 11, 16, ...

Можно ли поддерживать увеличение / уменьшение на 5, но начиная с 0 (таким образом, последовательность равна 0, 5, 10, 15, ...), когда минимальное значение равно 1?

Примером, где это может потребоваться (как в моем случае), является то, где вы хотите, чтобы пользовательвведите (строго) положительное число, но имейте значение увеличения / уменьшения 5, так как кратные числа 5 являются хорошими, простыми, округленными числами (в отличие от 1, 6, 11, 16 и т. д.)

1 Ответ

0 голосов
/ 13 мая 2018

Вы можете использовать updateNumericInput для предотвращения нулевого значения в numericInput.Вот пример:

library(shiny)

ui <- fluidPage(
  sidebarPanel(
    numericInput("val", "Enter value:", value=50, min = 0, step = 5)
  )
)

server <- function(input, output, session) {
  observeEvent(input$val, {
    x <- input$val
    if (x == 0 | is.na(x)){
      updateNumericInput(session, "val", value = 1)
    }
  })
}

shinyApp(ui, server)
...