使用带有NA的checkboxGroupInput选项

时间:2017-03-07 22:13:00

标签: r shiny

我无法弄清楚如何在checkboxGroupInput中使用NA。在下面的示例中,我希望能够选择所有NA值和所有" M"例如,值。但是我无法选择NA值。

过滤适用于Shiny应用程序之外的数据框,所以我想知道它是否与输入$ b_select有关。

server.R

library(shiny)
library(tidyverse)

a = 1:10
b = c('M', 'F', NA, NA, NA, 'F', NA, 'M', 'F', NA)

test_data <- tibble(a, b)

shinyServer(function(input, output) {

  output$total <- renderText({  

    data <- test_data %>%
      filter(b %in% input$b_select)

    paste("Total:", nrow(data), sep = ' ')   
  })
})

ui.R

library(shiny)

shinyUI(fluidPage(

  titlePanel("Example"),
    sidebarLayout(sidebarPanel(

      checkboxGroupInput("b_select", 
                         label = "B:", 
                         choices = c('M', 'F', NA),
                         selected = c('M', 'F', NA)
      )
    ),
    mainPanel(textOutput("total"))
  )
))

谢谢!

1 个答案:

答案 0 :(得分:0)

NA中选择checkboxGroupInput实际上会返回空字符串""

您可以使用is.na来修复过滤器:

data <- test_data %>%
  filter( b %in% input$b_select | ( is.na(b) & "" %in% input$b_select ) )