ÎncepețiÎncepe gratuit

Permite vizualizarea tuturor continentelor cu opțiunea „All"

Înainte de a adăuga selectorul de continent, aplicația Shiny afișa date pentru toate continentele. Odată ce selectorul a fost adăugat, datele pot fi vizualizate pe continent. Dar ce se întâmplă dacă utilizatorul nu dorește să filtreze după un anumit continent și preferă să le vadă pe toate? Din păcate, adăugarea selectorului a eliminat această posibilitate.

Argumentul choices al funcției selectInput() poate fi modificat pentru a adăuga o nouă valoare în lista de continente – iar când această valoare este selectată, filtrarea după continent poate fi dezactivată.

Acest exercițiu face parte din cursul

Studii de caz: Construirea aplicațiilor web cu Shiny în R

Vezi cursul

Instrucțiuni pentru exercițiu

Adaugă o opțiune în selectorul de input pentru a selecta toate continentele ("All"). Când această opțiune este aleasă, nu se aplică nicio filtrare după continent. Concret:

  • Adaugă valoarea "All" în lista de opțiuni furnizate selectorului din UI.
  • În server, folosește o instrucțiune if pentru a verifica dacă continentul este setat pe "All". Dacă este ales "All", nu aplica nicio filtrare după continent (linia 20).

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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)
Editează și rulează codul