Añade una tabla interactiva como resultado
Existen varios paquetes de htmlwidgets como DT, leaflet, plotly, etc., que ofrecen resultados muy interactivos y pueden integrarse fácilmente en apps Shiny usando prácticamente el mismo patrón. Por ejemplo, puedes convertir una tabla estática en una app Shiny en una tabla interactiva usando el paquete DT:
- Crea una tabla interactiva con
DT::datatable(). - Ríndezala con
DT::renderDT(). - Muéstrala con
DT::DTOutput().
En este ejercicio, actualizarás la app creada anteriormente, sustituyendo la tabla estática por una tabla interactiva.
Este ejercicio forma parte del curso
Creación de aplicaciones web con Shiny en R
Instrucciones del ejercicio
- Crea un resultado de tabla interactiva con
DTcon los 10 nombres más populares por sexo y año. Puedes usar la funcióntop_10_names()para generar un data frame que mostrar y pasarlo aDT::datatable(). - Muestra la tabla en la interfaz (UI).
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
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)