title: Non-Slider Numeric Range Input
body: <p>I’m working on an app which dynamically renders a set of UI elements (currently sliders) into three columns based on the user selecting which metrics they’d like to filter a particular dataset on. The issue I’m running into is that the different metrics have wildly variable ranges (i.e. gross merchandise sales vs. customer return rate) meaning sliders aren’t the best to work with. I’m wondering if any of you are aware of a numeric range input that can take two numeric inputs (a min and max) similar to the ends of a range slider? I haven’t been able to find something built into Shiny with this capability, but am hoping one of you may have some experience with customizing input elements. Any help will be greatly appreciated. See below for a snippet demonstrating the dynamic slider generation. </p>
  
  <p>Thanks!</p>
  
  <pre><code>output$filters &lt;- renderUI({
  if (input$geoselect == "US") {
    atts &lt;- tolower(input$ucolselect)
   if(length(input$ucolselect) &gt;= 3) {
  
    fluidRow(column(width = 4, lapply(1:round(
      1 / 3 * length(atts)
    ), function(i) {
      sliderInput(
        inputId = atts[i],
        label = atts[i],
        min = min(us[, tolower(colnames(us)) %in% atts[i]], na.rm = TRUE),
        max = max(us[, tolower(colnames(us)) %in% atts[i]], na.rm = TRUE)
        ,
        value = c(min(us[, tolower(colnames(us)) %in% atts[i]], na.rm = TRUE), max(us[, tolower(colnames(us)) %in% atts[i]], na.rm = TRUE)),
        step = NULL
      )
    })),
    column(width = 4,
  
           lapply((1 + round(1 / 3 * length(atts))):round(2 / 3 * length(atts)), function(i) {
             sliderInput(
               inputId = atts[i],
               label = atts[i],
               min = min(us[, tolower(colnames(us)) %in% atts[i]], na.rm = TRUE),
               max = max(us[, tolower(colnames(us)) %in% atts[i]], na.rm = TRUE)
               ,
               value = c(min(us[, tolower(colnames(us)) %in% atts[i]], na.rm = TRUE), max(us[, tolower(colnames(us)) %in% atts[i]], na.rm = TRUE)),
               step = NULL
             )
           })),
      .....
  </code></pre>