Aggiungi una tabella interattiva come output
Esistono diversi pacchetti htmlwidgets come DT, leaflet, plotly, ecc. che offrono risultati altamente interattivi e possono essere integrati facilmente nelle app Shiny seguendo quasi sempre lo stesso schema. Ad esempio, puoi trasformare una tabella statica in un'app Shiny in una tabella interattiva usando il pacchetto DT:
- Crea una tabella interattiva con
DT::datatable(). - Renderizzala con
DT::renderDT(). - Mostrala con
DT::DTOutput().
In questo esercizio aggiornerai l'app creata in precedenza, sostituendo la tabella statica con una tabella interattiva.
Questo esercizio fa parte del corso
Creare applicazioni web con Shiny in R
Istruzioni dell'esercizio
- Crea un output di tabella interattiva usando
DTcon i 10 nomi più popolari per sesso e anno. Puoi usare la funzionetop_10_names()per generare un data frame da visualizzare e passarlo aDT::datatable(). - Mostra la tabella nella UI.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
ui <- fluidPage(
titlePanel("What's in a Name?"),
# Add select input named "sex" to choose between "M" and "F"
selectInput('sex', 'Select Sex', choices = c("M", "F")),
# Add slider input named "year" to select year between 1900 and 2010
sliderInput('year', 'Select Year', min = 1900, max = 2010, value = 1900),
# MODIFY CODE BELOW: Add a DT output named "table_top_10_names"
tableOutput('table_top_10_names')
)
server <- function(input, output, session){
top_10_names <- function(){
babynames %>%
filter(sex == input$sex) %>%
filter(year == input$year) %>%
slice_max(prop, n = 10)
}
# MODIFY CODE BELOW: Render a DT output named "table_top_10_names"
output$table_top_10_names <- renderTable({
top_10_names()
})
}
shinyApp(ui = ui, server = server)