ComenzarEmpieza gratis

Añadir estructura a tu aplicación

Los diseños (layouts) en Shiny se usan para darle estructura a tu aplicación, colocando elementos en posiciones determinadas.

Un diseño con barra lateral, creado con la función sidebarLayout(), proporciona una estructura básica de dos columnas, con una barra lateral más pequeña a la izquierda y un panel principal más grande a la derecha.

La función de barra lateral acepta dos argumentos: sidebarPanel() y mainPanel(). Cada uno de estos paneles puede contener cualquier combinación de elementos de texto/HTML, de forma similar a cómo puedes mezclar estos elementos dentro de fluidPage().

Este ejercicio forma parte del curso

Casos prácticos: crea aplicaciones web con Shiny en R

Ver curso

Instrucciones del ejercicio

Tu tarea es añadir un diseño con barra lateral a la aplicación existente, de modo que las entradas queden a la izquierda y los resultados en el panel principal. En concreto, necesitas:

  • Definir la interfaz (UI) de la aplicación Shiny.
  • Añadir un diseño con barra lateral a la página.
  • Añadir un panel lateral al diseño y colocar en él las entradas y el texto.
  • Añadir un panel principal al diseño y colocar en él el gráfico y la tabla.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# Load the shiny package
library(shiny)

# Define UI for the application
ui <- ___(
  # Add a sidebar layout to the application
  ___(
    # Add a sidebar panel around the text and inputs
    ___(
      h4("Plot parameters"),
      textInput("title", "Plot title", "Car speed vs distance to stop"),
      numericInput("num", "Number of cars to show", 30, 1, nrow(cars)),
      sliderInput("size", "Point size", 1, 5, 2, 0.5)
    ),
    # Add a main panel around the plot and table
    ___(
      plotOutput("plot"),
      tableOutput("table")
    )
  )
)

# Define the server logic
server <- function(input, output) {
  output$plot <- renderPlot({
    plot(cars[1:input$num, ], main = input$title, cex = input$size)
  })
  output$table <- renderTable({
    cars[1:input$num, ]
  })
}

# Run the application
shinyApp(ui = ui, server = server)
Editar y ejecutar código