Prüfen, ob eine Auswahl getroffen wurde
Erinnere dich aus dem Video: Auch wenn es oft sinnvoll ist, für Auswahl-Inputs einen Standardwert festzulegen, kannst du – falls keiner gesetzt werden soll – eine eigene Fehlermeldung ausgeben, die erklärt, was zu tun ist, damit die App korrekt läuft.
In der letzten Übung haben wir gesehen, dass der Plot ohne Standardwert für pickerInput() einfach leer bleibt. Statt eines leeren Plots zeigst du in dieser Übung eine benutzerdefinierte Fehlermeldung an, die dazu auffordert, die richtige Auswahl zu treffen, damit die App funktioniert.
Diese Übung ist Teil des Kurses
Webanwendungen mit Shiny in R entwickeln
Anleitung zur Übung
- Füge eine eigene Fehlermeldung hinzu, die standardmäßig angezeigt wird und darauf hinweist, dass eine Auswahl für mentale versus körperliche Gesundheit getroffen werden soll.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
ui <- fluidPage(
titlePanel("2014 Mental Health in Tech Survey"),
sidebarPanel(
sliderTextInput(
inputId = "work_interfere",
label = "If you have a mental health condition, do you feel that it interferes with your work?",
grid = TRUE,
force_edges = TRUE,
choices = c("Never", "Rarely", "Sometimes", "Often")
),
checkboxGroupInput(
inputId = "mental_health_consequence",
label = "Do you think that discussing a mental health issue with your employer would have negative consequences?",
choices = c("Maybe", "Yes", "No"),
selected = "Maybe"
),
pickerInput(
inputId = "mental_vs_physical",
label = "Do you feel that your employer takes mental health as seriously as physical health?",
choices = c("Don't Know", "No", "Yes"),
multiple = TRUE
)
),
mainPanel(
plotOutput("age")
)
)
server <- function(input, output, session) {
output$age <- renderPlot({
# MODIFY CODE BELOW: Add validation that user selected a 3rd input
mental_health_survey %>%
filter(
work_interfere == input$work_interfere,
mental_health_consequence %in% input$mental_health_consequence,
mental_vs_physical %in% input$mental_vs_physical
) %>%
ggplot(aes(Age)) +
geom_histogram()
})
}
shinyApp(ui, server)