ComenzarEmpieza gratis

Permitir ver continentes "All"

Antes de añadir el selector de continente, la app de Shiny mostraba datos de todos los continentes. Ahora que se ha añadido el selector, los datos pueden verse por continente. Pero ¿y si el usuario decide que en realidad no quiere filtrar por un continente específico y prefiere verlos todos? Lamentablemente, al añadir el selector de continente se perdió esa posibilidad.

El argumento choices de la función selectInput() se puede modificar para añadir otro valor a la lista de continentes y, cuando se elija ese valor, desactivar el filtrado por continente.

Este ejercicio forma parte del curso

Casos prácticos: crea aplicaciones web con Shiny en R

Ver curso

Instrucciones del ejercicio

Añade una opción en el select input para seleccionar todos los continentes con "All". Cuando se elija esa opción, no hagas ningún filtrado por continente. En concreto:

  • Añade un valor "All" a la lista de opciones que se proporciona al select input en la UI.
  • En el servidor, usa una sentencia if para comprobar si el continente está en "All". Si se elige "All", no realices ningún filtrado por continentes (línea 20).

Ejercicio interactivo práctico

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

ui <- fluidPage(
  h1("Gapminder"),
  sliderInput(inputId = "life", label = "Life expectancy",
              min = 0, max = 120,
              value = c(30, 50)),
  # Add an "All" value to the continent list
  selectInput("continent", "Continent",
              choices = c(___, levels(gapminder$continent))),
  tableOutput("table")
)

server <- function(input, output) {
  output$table <- renderTable({
    data <- gapminder
    data <- subset(
      data,
      lifeExp >= input$life[1] & lifeExp <= input$life[2]
    )
    # Don't subset the data if "All" continent are chosen
    if (___) {
      data <- subset(
        data,
        continent == input$continent
      )
    }
    data
  })
}

shinyApp(ui, server)
Editar y ejecutar código