Kom igångKom igång gratis

Filtrera efter medellivslängd

Den verkliga styrkan med Shiny visar sig när inmatningar kombineras med utdata. Tabellen som skapades i föregående övning är statisk – den kan inte ändras – men för att utforska data vore det bättre om användaren själv kan välja vilken delmängd av data som ska visas.

Detta uppnår du genom att lägga till en inmatning som låter användaren ange ett värde för att filtrera data. På så sätt kan tabellen från föregående övning göras dynamisk.

En av variablerna i datamängden gapminder är lifeExp (medellivslängd). Din uppgift är att lägga till ett skjutreglage i Shiny-appen som låter användaren välja en lägsta och högsta medellivslängd – tabellen visar sedan bara data som matchar dessa värden.

Den här övningen är en del av kursen

Fallstudier: Bygg webbapplikationer med Shiny i R

Visa kurs

Övningsinstruktioner

  • Lägg till ett skjutreglage i gränssnittet med ID:t "life", ett minimivärde på 0, ett maximivärde på 120 och ett standardvalt intervall på 30–50.
  • Inuti renderfunktionen använder du inmatningsvärdet för att filtrera gapminder-data så att bara poster med ett lifeExp-värde mellan minimi- och maximivärdet inkluderas (båda inklusive).

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

ui <- fluidPage(
  h1("Gapminder"),
  # Add a slider for life expectancy filter 
  ___(inputId = ___, label = "Life expectancy",
      min = ___, max = ___,
      value = c(30, 50)),
  tableOutput("table")
)

server <- function(input, output) {
  output$table <- renderTable({
    data <- gapminder
    data <- subset(
      data,
      # Use the life expectancy input to filter the data
      lifeExp >= ___life[1] & lifeExp <= ___life[2]
    )
    data
  })
}

shinyApp(ui, server)
Redigera och kör kod