2017-03-07 105 views
0

我無法弄清楚如何在checkboxGroupInput中使用NA。在下面的例子中,我希望能夠選擇所有NA值和所有「M」值。但我無法選擇NA值。使用checkboxGroupInput選項與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")) 
) 
)) 

謝謝!

回答

0

選擇NAcheckboxGroupInput實際上返回空字符串""

您可以is.na使用固定過濾器:

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