ComenzarEmpieza gratis

Valida que la persona usuaria haya hecho una selección

Recuerda del vídeo que, aunque a menudo es buena práctica establecer un valor por defecto para tus selectores, si hay que excluirlo, puedes mostrar un mensaje de error personalizado que indique a las personas usuarias qué hacer para que la app funcione correctamente.

Vimos en el ejercicio anterior que, sin un valor por defecto para pickerInput(), el gráfico aparece en blanco. En este ejercicio, en lugar de un gráfico en blanco, mostrarás un mensaje de error personalizado indicando que deben hacer la selección correcta para que la app funcione.

Este ejercicio forma parte del curso

Creación de aplicaciones web con Shiny en R

Ver curso

Instrucciones del ejercicio

  • Añade un mensaje de error personalizado que se muestre por defecto indicando a las personas usuarias que deben seleccionar una entrada para salud mental frente a salud física.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

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)
Editar y ejecutar código