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

Каркасное проектирование

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

Напомним: кнопка в боковой панели задаётся с помощью menuItem() и помещается внутрь sidebarMenu(). Возможно, вы заметили, что эти кнопки пока ни с чем не связаны. Теперь вы свяжете кнопки боковой панели с соответствующими страницами в теле интерфейса. Это по-прежнему часть процесса каркасного проектирования: вы определяете расположение каждого элемента. Каждая страница в теле задаётся с помощью tabItem() и должна быть помещена внутрь tabItems.

Пакеты shiny и shinydashboard уже загружены. Заголовок дашборда сохранён в переменной header.

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

Создание дашбордов с помощью shinydashboard

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

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

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

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