НачатьНачать бесплатно

Добавление структуры в приложение

Макеты в Shiny позволяют задать структуру приложения, размещая элементы в нужных местах.

Боковой макет, созданный с помощью функции sidebarLayout(), обеспечивает базовую двухколоночную структуру: узкая боковая панель слева и более широкая основная панель справа.

Функция бокового макета принимает два аргумента: sidebarPanel() и mainPanel(). Каждая из этих панелей может содержать произвольное сочетание текстовых и HTML-элементов — так же, как это работает внутри fluidPage().

Это упражнение является частью курса

Примеры использования: создание веб-приложений с Shiny в R

Посмотреть курс

Инструкции к упражнению

Ваша задача — добавить боковой макет в существующее приложение так, чтобы элементы ввода располагались слева, а результаты — в основной панели. Для этого вам необходимо:

  • Определить пользовательский интерфейс приложения Shiny.
  • Добавить боковой макет на страницу.
  • Добавить боковую панель в макет и разместить в ней элементы ввода и текст.
  • Добавить основную панель в макет и разместить в ней график и таблицу.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# 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)
Редактировать и запускать код