Lägg till en interaktiv tabellutdata
Det finns flera htmlwidgets-paket, som DT, leaflet och plotly, som tillhandahåller mycket interaktiva utdata och enkelt kan integreras i Shiny-appar med nästan samma mönster. Du kan till exempel omvandla en statisk tabell i en Shiny-app till en interaktiv tabell med paketet DT:
- Skapa en interaktiv tabell med
DT::datatable(). - Rendera den med
DT::renderDT(). - Visa den med
DT::DTOutput().
I den här övningen uppdaterar du den tidigare skapade appen och ersätter den statiska tabellen med en interaktiv tabell.
Den här övningen är en del av kursen
Bygg webbapplikationer med Shiny i R
Övningsinstruktioner
- Skapa en interaktiv tabellutdata med
DTsom visar de 10 populäraste namnen per kön och år. Använd funktionentop_10_names()för att generera en dataram att visa, och skicka den tillDT::datatable(). - Visa tabellen i gränssnittet (UI).
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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)