Inizia subitoInizia gratis

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:

  1. Crea una tabella interattiva con DT::datatable().
  2. Renderizzala con DT::renderDT().
  3. 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

Visualizza corso

Istruzioni dell'esercizio

  • Crea un output di tabella interattiva usando DT con i 10 nomi più popolari per sesso e anno. Puoi usare la funzione top_10_names() per generare un data frame da visualizzare e passarlo a DT::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)
Modifica ed esegui il codice