ComeçarComece de graça

Adicionar uma saída de tabela interativa

Existem vários pacotes htmlwidgets, como DT, leaflet, plotly, etc., que oferecem saídas altamente interativas e podem ser facilmente integrados a apps Shiny seguindo praticamente o mesmo padrão. Por exemplo, você pode transformar uma tabela estática em um app Shiny em uma tabela interativa usando o pacote DT:

  1. Crie uma tabela interativa usando DT::datatable().
  2. Renda a tabela usando DT::renderDT().
  3. Exiba a tabela usando DT::DTOutput().

Neste exercício, você vai atualizar o app criado anteriormente, substituindo a tabela estática por uma tabela interativa.

Este exercício faz parte do curso

Construindo Aplicações Web com Shiny em R

Ver curso

Instruções do exercício

  • Crie uma saída de tabela interativa usando DT com os 10 nomes mais populares por sexo e ano. Você pode usar a função top_10_names() para gerar um data frame para exibir e passá-lo para DT::datatable().
  • Exiba a tabela na UI.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

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)
Editar e executar o código