ส่วนประกอบของ shinydashboard

การสร้างแดชบอร์ดด้วย shinydashboard

Png Kee Seng

Researcher

shinydashboard คืออะไร?

  • shinydashboard คือ shinyApp ที่มี dashboard เป็นผลลัพธ์
    • ต้องมี UI
    • ต้องมี server
  • ต้องใช้ shinyApp() เพื่อเชื่อม UI และ server เข้าด้วยกัน
  • UI ถูกกำหนดด้วย dashboardPage() แทน fluidPage()
ui <- dashboardPage(header, sidebar, body)
server <- function(input, output){
...
}
shinyApp(ui, server)
การสร้างแดชบอร์ดด้วย shinydashboard

User Interface (UI)

  • UI ประกอบด้วยส่วนต่าง ๆ ดังนี้
    1. header
    2. sidebar
    3. body
  • UI ของ shinydashboard ประกอบขึ้นด้วย dashboardPage()
header <- dashboardHeader(...)
sidebar <- dashboardSidebar(...)
body <- dashboardBody(...)
# a shinydashboard ui
ui <- dashboardPage(header, sidebar, body)
การสร้างแดชบอร์ดด้วย shinydashboard

ตัวอย่าง UI

ภาพแสดงส่วนประกอบต่าง ๆ ของ UI ใน shinydashboard

การสร้างแดชบอร์ดด้วย shinydashboard

กลับมาดูอุปมาร้านอาหาร

  • UI เปรียบเหมือนร้านอาหาร
  • server เปรียบเหมือนพนักงานเสิร์ฟ
  • UI ยังแบ่งออกเป็นส่วนย่อย ๆ ได้อีก

ผู้ใช้ shinyApp เปรียบเหมือนลูกค้าในร้านอาหาร

พนักงานเสิร์ฟรับออร์เดอร์และส่งอาหารมาให้เรา

1 Image by macrovector on Freepik
การสร้างแดชบอร์ดด้วย shinydashboard

UI ในฐานะมื้ออาหารหลายคอร์ส

  • ใน UI:
    • header เปรียบเหมือนป้ายร้าน
    • sidebar เปรียบเหมือนรายการอาหาร
    • output และ input เปรียบเหมือนอาหารและออร์เดอร์
  • แสดงทีละหนึ่งรายการ
  • แต่ละรายการมีคำแนะนำของตัวเอง
  • แต่ละรายการเปรียบเหมือน shinyApp หนึ่งตัว
    • มี input และ output ได้หลายชุด

แต่ละรายการเปรียบเหมือน shinyApp ที่มี input และ output หลายชุด

1 Image by brgfx on Freepik
การสร้างแดชบอร์ดด้วย shinydashboard

shinydashboard เปล่า

library(shinydashboard)
library(shiny)
header <- dashboardHeader(title = "My first dashboard")
sidebar <- dashboardSidebar()
body <- dashboardBody()
ui <- dashboardPage(header, sidebar, body)
การสร้างแดชบอร์ดด้วย shinydashboard

เรนเดอร์ shinydashboard

header <- dashboardHeader(title = "My first dashboard")

sidebar <- dashboardSidebar()

body <- dashboardBody()

ui <- dashboardPage(header, sidebar, body)

server <- function(input, output) { }
shinyApp(ui, server)
การสร้างแดชบอร์ดด้วย shinydashboard

เรนเดอร์ shinydashboard

shinydashboard เปล่า

การสร้างแดชบอร์ดด้วย shinydashboard

มาฝึกกันเถอะ!

การสร้างแดชบอร์ดด้วย shinydashboard

Preparing Video For Download...