Filtrează după speranța de viață
Adevăratul avantaj al Shiny apare atunci când inputurile sunt combinate cu outputurile. Tabelul creat în exercițiul anterior este static – nu poate fi modificat – dar pentru explorare ar fi mai util ca utilizatorul să poată alege ce subset de date să vizualizeze.
Acest lucru se poate realiza adăugând un input care îi permite utilizatorului să selecteze o valoare pentru filtrarea datelor. Astfel, tabelul creat anterior poate deveni dinamic.
Una dintre variabilele din setul de date gapminder este lifeExp (speranța de viață). Sarcina ta este să adaugi un slider în aplicația Shiny, care să îi permită utilizatorului să aleagă o speranță de viață minimă și una maximă, iar tabelul să afișeze doar datele care corespund acestor valori.
Acest exercițiu face parte din cursul
Studii de caz: Construirea aplicațiilor web cu Shiny în R
Instrucțiuni pentru exercițiu
- Adaugă un slider în UI cu ID-ul "life", o valoare minimă de 0, o valoare maximă de 120 și o selecție implicită între 30 și 50.
- În interiorul funcției de randare, folosește valoarea inputului pentru a filtra datele din
gapminder, astfel încât să fie incluse doar înregistrările cu o valoarelifeExpcuprinsă între valorile minimă și maximă (ambele inclusive).
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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)