LoslegenKostenlos loslegen

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

Kurs anzeigen

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