EmpezarEmpieza gratis

Wireframing

Volvamos al ejemplo anterior del panel para los resultados de análisis de un torneo de fútbol. En los ejercicios previos, ya configuraste el header y la barra lateral.

En concreto, un botón en la barra lateral se define con menuItem() y se incluye dentro de sidebarMenu(). Habrás notado que, por ahora, estos botones no hacen nada. Ahora vas a vincular esos botones de la barra lateral a una página distinta en el cuerpo de la interfaz. Esto sigue siendo parte del proceso de wireframing, en el que aún decides la posición de cada objeto. Cada página dentro del cuerpo se define con tabItem() y debe estar contenida dentro de tabItems.

Los paquetes shiny y shinydashboard ya se han cargado por ti. Además, el header del panel ya se ha guardado como header.

Este ejercicio forma parte del curso

Creación de paneles con shinydashboard

Ver curso

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

library(shiny)
library(shinydashboard)

header <- dashboardHeader(
  title = "Analysis results for global soccer tournament",
  titleWidth = 400,
  dropdownMenu(type = "messages",
               messageItem("Colleage", "Hello world!")),
  dropdownMenu(type = "notifications",
               notificationItem("Have you rested today?"),
               taskItem("Dashboard completion", value = 20)))

sidebar <- dashboardSidebar(
  sidebarMenu(
    width = 400,
    id = "pages",
    menuItem("Match details", tabName = "matches", icon = icon("futbol"),
             badgeLabel = "New content!", badgeColor = "green"),
    menuItem("Overall results", tabName = "overall", 
             menuSubItem("Charts", tabName = "charts"),
             menuSubItem("Data table", tabName = "datatable", icon=icon("file-excel"))),
    menuItem("A slider",  sliderInput("slider", "Number of goals", min=0, max=10, value = 2))
  )
)

body <- dashboardBody(
  # Link "matches" to an empty page in the body
  ___(
    ___(___, "Match information goes here")
  )
)
ui <- dashboardPage(header, sidebar, body)
server <- function(input, output){}
shinyApp(ui, server)
Editar y ejecutar código