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:
- Crie uma tabela interativa usando
DT::datatable(). - Renda a tabela usando
DT::renderDT(). - 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
Instruções do exercício
- Crie uma saída de tabela interativa usando
DTcom os 10 nomes mais populares por sexo e ano. Você pode usar a funçãotop_10_names()para gerar um data frame para exibir e passá-lo paraDT::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)