Я работаю с R блестящим, чтобы создать простое приложение для черчения, и я не думаю, что я действительно понимаю, как работает checkboxGroupInput
, и документация с веб-сайта приложения R блестящая не слишком полезна, поэтому я былв надежде получить некоторое разъяснение.
Вот как выглядит мой checkboxGroupInput
:
checkboxGroupInput("trend1DisplayOptions", "Graph Display Options",
choiceNames = list("Connect Data Points", "Display Loess Smoother with Uncertainty Bounds"),
choiceValues = list("connect", "loess"),
selected = "connect")
Итак, я, по сути, хочу отобразить 4 разных "типа" графиков, в зависимости от того, какойфлажки установлены (отображать точки лесс / соединения или нет).
А в моем коде server
приведены операторы if/else
:
if (input$trend1DisplayOptions == "connect" && input$trend1DisplayOptions != "loess") {
# Only connect points
p <- plot_ly(x = df2$labels, y = df2$values, type = 'scatter', mode='lines+markers') %>%
layout(xaxis = list(type = "category"))
p
# Probably wrong way to check
} else if (input$trend1DisplayOptions == "connect" && input$trend1DisplayOptions == "loess") {
# Should display nothing
# Probably wrong way to check
} else if (input$trend1DisplayOptions != "connect" && input$trend1DisplayOptions == "loess") {
# Should display nothing
} else if (is.null(input$trend1DisplayOptions)) {
# Should show
p <- plot_ly(x = x_labels, y = df$values, type = 'scatter') %>%
layout(xaxis = list(type = "category"), title = input$trendTitle)
p
}
Проблема I 'Я сталкиваюсь с тем, что когда установлены оба флажка, приложение shiny
не должно отображать ничего, но оно все равно отображает график из первого оператора if
(т. е. когда выбран только «connect»).И, когда ни один из них не выбран, я получаю ошибку missing value where TRUE/FALSE needed
.
Что я неправильно понял относительно checkboxGroupInput
?
Я вижу, что проблема заключается в предположении, что входные значения равны 2вещи в то же время.Итак, как правильно проверить, установлен ли флажок 1, а флажок 2 нет, и наоборот?Кроме того, я искал на этом форуме, чтобы увидеть, как бороться, когда ни один из них не выбран, и кажется, is.null()
правильный путь.Почему это не работает для моего случая?