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
Ö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 ettlifeExp-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)