Análisis de grandes volúmenes de datos

¿Qué es Shinydashboard?

shinydashboard es un paquete complementario de Shiny que ofrece un diseño de tres partes: un encabezado (header), una barra lateral (siderbar) y un cuerpo para el tablero (body).

library(shinydashboard)

ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(),
  dashboardBody()
)

server <- function(input, output) { }

shinyApp(ui, server)

Estructura

  • La interfaz de usuario (ui) es el objeto que define cómo será la visualización del tablero y los elementos que estarán allí incluidos.

  • El servidor (server) contiene todos los cálculos y operaciones necesarios para generar los elementos que se van a visualizar.

  • Para profundizar en la estructura, visiten la siguiente liga: Estructura

Encabezado dashboardHeader()

Un encabezado puede tener un título y menús desplegables.

Los menús desplegables son generados por la función dropdownMenu(). Hay tres tipos de menús:

  • mensajes (messageItem()): from y message. Adicionales icon y time. Lista de iconos.

  • notificaciones (notificationItem()): text. Adicionales icon y status. Lista de status.

  • tareas (taskItem()): value y text. Adicionales color. Lista de colores validos ?validColors.

Ejemplo de Encabezado

Barra lateral dashboardSidebar()

La barra lateral se usa por lo general para navegar de forma rápida. Puede contener varios items que se comportan como tabpanel() en Shiny. Es decir, cuando se hace clic en un item, se muestra el contenido de esa pestaña en el cuerpo del tablero.

Pueden ver un ejemplo en la carpeta barra lateral con el nombre App_1.

También se puede agregar un buscador, hacer subpestañas, colocar cualquier hipervínculo o widget. Pueden ver un ejemplo en la misma carpeta con el nombre de App_2.

Deshabilitar la barra lateral

dashboardSidebar(disable = TRUE)

Cuerpo del tablero dashboardBody()

El cuerpo del tablero de cualquier panel puede colocarse cualquier contenido de Shiny. El componente básico de la mayoría de los paneles es la creación de cajas.

Cajas

Las cajas se crean con la función box(). A su vez, pueden contener cualquier contenido. En un tablero típico, estas cajas se colocarían dentro de un fluidRow()(lo veremos a detalle más adelante).

Un primer ejemplo de cajas se puede ver la carpeta Cuerpos, y dentro de ella esta la carpeta cajas, y se debe abrir el archvio con el nombre App_1.

Cajas básicas

Los cajas pueden tener títulos y colores de barra de encabezado con las opciones title y status. Segundo ejemplo: App_2.

Las cajas también pueden tener encabezados sólidos con solidHeader=TRUE y mostrar un botón en la parte superior derecha que colapsará el cuadro con collapsible=TRUE. Tercer ejemplo: App_3.

Si desea que los cuadros no tengan una barra gris o de color en la parte superior, use solidHeader=TRUE y no dé un valor para status. Cuarto ejemplo: App_4.

Finalmente, también es posible tener un fondo sólido, con la opción background. Para esta opción, puedes usar los diferentes colores permitidos. Quinto ejemplo: App_5.

Cajas de información

Existe un tipo especial de cajas que se utiliza para mostrar valores numéricos o de texto simples, con un icono. Para generar estas cajas se utiliza la función infoBox().

Dado que el contenido de estas cajas normalmente será dinámico, shinydashboard contiene las funciones auxiliares infoBoxOutput() y renderInfoBox() para el contenido dinámico.

Pueden encontrar un ejemplo en: App_6.

También existen las Cajas de valores valueBox(), que son muy similares a infoBox(), pero tienen una apariencia algo diferente.

Pueden encontrar un ejemplo en: App_7.

Cajas y paneles

Si desea que un caja tenga diferentes paneles para mostrar diferentes contenidos, puede usar tabBox(). Este es muy similar a un tabsetPanel() de Shiny, le permite elegir qué panel está seleccionado y se le puede asignar un id.

Un tabBox() también tiene similitudes con un habitual box() de shinydashboard, en que se puede controlar el height, width y el title. También puede elegir en qué lado aparecen las pestañas, con el argumento side. Tenga en cuenta que si side="right", las pestañas se mostrarán en orden inverso.

Un ejemplo se puede visualizar dentro de la carpeta Cuerpos y dentro de ella hay una carpeta llamada cajas y paneles.

Para profundizar aún más en el tema, revisen shinydashboard