เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การสร้างฟังก์ชันตัวช่วย

shinydashboard รองรับการเพิ่มองค์ประกอบได้หลากหลาย การจะให้ input ของผู้ใช้โต้ตอบกับ output ของ dashboard ได้ ต้องกำหนดการโต้ตอบเหล่านั้นไว้ภายในฟังก์ชัน render ที่อยู่ใน server

หากมีการโต้ตอบและ output หลายรายการ โค้ดอาจยาวและซับซ้อนได้อย่างรวดเร็ว วิธีหนึ่งที่ช่วยแก้ปัญหานี้คือการสร้างฟังก์ชันตัวช่วยของตัวเองไว้นอก shinydashboard

ในแบบฝึกหัดนี้ จะสร้างฟังก์ชันตัวช่วย 2 ฟังก์ชัน ได้แก่:

  1. num_listings(): คืนค่าจำนวนรายการที่กรองแล้วตามช่วง price ที่กำหนด
  2. make_plots(): สร้าง boxplot หรือ violin plot ตามตัวเลือกของผู้ใช้ และข้อมูลที่กรองแล้วตามช่วง price

โหลด listings ไว้แล้ว และนำเข้า sf, tidyverse และ leaflet เรียบร้อยแล้ว

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

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

ดูคอร์ส

คำแนะนำการฝึกหัด

  • กรอง listings ให้อยู่ในช่วงระหว่างขอบเขตซ้ายและขอบเขตขวาของอาร์กิวเมนต์ range ซึ่งเป็นตัวแทนของ input จาก shinyApp
  • กำหนดเงื่อนไข if-else ให้ถูกต้อง โดยให้แสดง boxplot เมื่อ choice ตรงกับ "Box plots" และแสดง violin plot เมื่อตรงกับ "Violin plots"

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

num_listings <- function(range){
  # Filter listings appropriately
  filter(listings, price >= ___, price <= ___) %>% nrow()
}
make_plots <- function(range, choice){
  filtered_listings <- filter(listings, price >= range[1], price <= range[2])
  # Set the correct if-else conditions
  if (choice == ___){
     filtered_listings %>%
      ggplot(aes(y = price, x = room_type)) + geom_boxplot() + theme_classic()
  }
  else if (___){
    filtered_listings %>%
      ggplot(aes(y = price, x = room_type)) + geom_violin() + theme_classic()
}}
แก้ไขและรันโค้ด