LoslegenKostenlos starten

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

<Kurs>Webanwendungen mit Shiny in R entwickeln</Kurs>
Kurs ansehen

Übungsanweisungen

  • 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 praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

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)
Code bearbeiten und ausführen