2017-01-30 4 views
1

EDIT: Мой первоначальный вопрос задан вопрос о checkboxInput(), но я обновил до checkboxGroupInput(), чтобы лучше отразить мою проблему ...Unchecked коробки с использованием checkboxGroupInput в блестящей

Я пытаюсь получить мою Блестящую приложение, чтобы сделать один из двух вещей, основанных на (un) проверенном состоянии checkboxGroupInput.

Когда флажки отмечены, я могу заставить мой код работать. Однако я не могу понять, как сделать снятием всех ящиков приведет к уникальному результату.

Как это сделать?

Этот вопрос google groups question задал этот вопрос еще 4 года назад, но ответ тогда заключался в том, что это просто ошибка. Я предполагаю, что это было рассмотрено с тех пор?

Ниже приведен воспроизводимый пример. - В этом примере при снятии флажка выводится сообщение об ошибке «Ошибка в случае: аргумент имеет длину ноль».

library(shiny) 

ui <- fluidPage(
    checkboxGroupInput(inputId = "test.check", label = "", choices = "Uncheck For 2", selected = "Uncheck For 2"), 
    verbatimTextOutput(outputId = "test") 
) 

server <- function(input, output) { 

    output$test <- renderPrint({ 
    if(input$test.check == "Uncheck For 2") { 
     1 
    } else { 
     2 
    } 
    }) 


} 

shinyApp(ui = ui, server = server) 

Возможно ли использовать функцию «if.unchecked», которую я могу использовать?

  • Я попытался is.null после else заявления с тем же результатом, что и выше примере ....
+2

попробовать 'is.null' следующим образом: 'if (! is.null (input $ test.check) && input $ test.check ==" Uncheck For 2 ")' – HubertL

ответ

2

Вот код, который работает:

library(shiny) 

ui <- fluidPage(
    checkboxGroupInput(inputId="test.check", label="", choices="Uncheck For 2", selected="Uncheck For 2"), 
    verbatimTextOutput(outputId = "test") 
) 

server <- function(input, output) { 
    output$test <- renderPrint({ 
    if(!is.null(input$test.check)) { 
     1 
    } else{ 
     2 
    } 
    }) 
} 

shinyApp(ui = ui, server = server) 
+0

Спасибо! Так это просто просто логический тест?. Кроме того, я хочу использовать 'checkboxGroupInput', чтобы я мог предоставить заголовок для моего ввода (у которого' checkboxInput' не имеет аргумента для). – theforestecologist

+0

Возможно, я должен перефразировать мой вопрос, как выбрать действие на основе всех проверок checkboxGroupInput, которые не отмечены .... – theforestecologist

+0

Хорошо, в этом случае используется 'is.null()' works. Я изменил свой ответ, чтобы сделать это с помощью 'checkboxGroupInput'. –