시작하기무료로 시작하기

와이어프레이밍

앞서 살펴본 축구 토너먼트 분석 결과용 대시보드 예제로 돌아가 봅시다. 이전 연습 문제에서 이미 헤더와 사이드바를 설정했어요.

특히, 사이드바의 버튼은 menuItem()으로 정의하고 sidebarMenu() 안에 포함합니다. 지금은 이 버튼들이 아무 동작도 하지 않는다는 점을 눈치채셨을 거예요. 이제 이 사이드바 버튼들을 UI의 본문 영역에 있는 서로 다른 페이지에 연결하겠습니다. 이는 여전히 와이어프레이밍 과정의 일부로, 각 객체의 배치를 결정하는 단계입니다. 본문 안의 각 페이지는 tabItem()으로 정의하고, 반드시 tabItems 안에 포함되어야 합니다.

shinyshinydashboard 패키지는 이미 불러와 두었습니다. 또한 대시보드 헤더는 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)
코드 편집 및 실행