在 shiny app 的 sliderinput 中添加 "NA" 选项

Add "NA" option in the sliderinput of shiny app

我想让用户能够 select“NA”或在 sliderInput 中输入空值。也许在滑块输入附近添加一个“NA”按钮?有什么办法吗? example 谢谢

您可以添加 checkboxInput 并将其与服务器内的 if 条件配对。这是一个使用 iris 数据集的示例。

library(shiny)
library(shinyWidgets)
library(tidyverse)



iris_df <- iris

#populate with some NA's
set.seed(123)
sample(1:nrow(iris), 10) %>%
  walk(~ {
    iris_df[.x, "Sepal.Width"] <<- NA
  })

ui <- fluidPage(
  checkboxInput("na", "Select NA Values", value = FALSE),
  conditionalPanel(
    condition = "input.na == false",
    sliderInput("sepalw", "Sepal Width Range",
      value = c(median(iris$Sepal.Width), max(iris$Sepal.Width)),
      min = min(iris$Sepal.Width),
      max = max(iris$Sepal.Width)
    )
  ),
  dataTableOutput("table")
)

server <- function(input, output, session) {
  df <- reactive({
    if (!input$na) {
      iris_df %>%
        filter(between(Sepal.Width, input$sepalw[[1]], input$sepalw[[2]]))
    } else {
      iris_df %>% filter(is.na(Sepal.Width))
    }
  })

  output$table <- renderDataTable(
    {
      df()
    },
    options = list(pageLength = 10)
  )
}

shinyApp(ui, server)