เริ่มต้นกับ shinyApps

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

Png Kee Seng

Researcher

ทำไมต้องสร้างแดชบอร์ด?

  • รายงานเป็นเอกสารแบบ static
  • ต่างจากรายงาน แดชบอร์ดเป็นแบบ dynamic
  • ให้ประสบการณ์ที่มีส่วนร่วมมากกว่าแก่ผู้ใช้
  • shinydashboard ช่วยสร้างแดชบอร์ดใน R ได้อย่างสะดวก

ภาพตัวอย่างรายงานแบบ static ซึ่งแสดงสถานการณ์ ณ ช่วงเวลาหนึ่ง

1 ที่มา: WikiMedia
การสร้างแดชบอร์ดด้วย shinydashboard

ตัวอย่าง shinydashboard

ตัวอย่าง shinydashboard ที่มีองค์ประกอบแบบโต้ตอบหลากหลายรูปแบบ

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

shinyApp

  • shinydashboard คือ shinyApp ประเภทหนึ่ง
  • มีองค์ประกอบหลัก 2 ส่วน:
    • ส่วนติดต่อผู้ใช้ (UI)
    • เซิร์ฟเวอร์

ตัวอย่าง shiny app จาก RStudio

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

อุปมาเรื่องร้านอาหาร

  • shiny app เปรียบได้กับร้านอาหาร
  • ผู้ใช้ shinyApp เปรียบเหมือนลูกค้า
  • ส่วนติดต่อผู้ใช้ ประกอบด้วย output และ input
    • output เปรียบเหมือนอาหารที่เสิร์ฟ
    • input เปรียบเหมือนรายการที่สั่ง
  • พนักงานเสิร์ฟรับออเดอร์ไปที่ครัวและนำอาหารมาให้
    • เซิร์ฟเวอร์ กำหนด output ที่แอปจะแสดงตาม input ของผู้ใช้

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

พนักงานเสิร์ฟรับออเดอร์ไปที่ครัวและนำอาหารมาให้

1 ภาพโดย macrovector จาก Freepik
การสร้างแดชบอร์ดด้วย shinydashboard

ส่วนติดต่อผู้ใช้ (UI)

  • นำเข้า shiny
  • ส่วนติดต่อผู้ใช้ (ui): fluidPage()
  • เพิ่มองค์ประกอบของแอปใน UI
    • เช่น ชื่อเรื่องด้วย titlePanel()
  • เซิร์ฟเวอร์: ฟังก์ชันที่ผู้ใช้กำหนดชื่อว่า server()
  • shinyApp() เชื่อมทุกส่วนเข้าด้วยกันและเรนเดอร์แอป
library(shiny)
ui <- fluidPage(titlePanel("Your first app"))
server <- function(input, output){
}
shinyApp(ui, server)
การสร้างแดชบอร์ดด้วย shinydashboard

shinyApp ที่เรนเดอร์แล้ว

shinyApp ที่เรนเดอร์จากโค้ดในสไลด์ก่อนหน้า — เป็นแอปว่างเปล่าที่ยังไม่มี input หรือ output

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

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

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

Preparing Video For Download...