Bắt đầu ngayBắt đầu miễn phí

Tạo một số hàm trợ giúp

Có rất nhiều thành phần bạn có thể thêm vào một shinydashboard. Để cho phép tương tác giữa đầu vào của người dùng và đầu ra trên bảng điều khiển, bạn cần định nghĩa các tương tác này trong các hàm render đặt ở server.

Mã có thể trở nên rối rất nhanh nếu có nhiều tương tác và nhiều đầu ra. Một cách giải quyết là tạo các hàm trợ giúp riêng ở ngoài môi trường shinydashboard.

Sau đây, bạn sẽ xây dựng hai hàm trợ giúp:

  1. num_listings(): Trả về số lượng listing dựa trên dữ liệu đã lọc trong một khoảng price.
  2. make_plots(): Tạo boxplot hoặc violin plot dựa trên lựa chọn của người dùng, và dựa trên dữ liệu đã lọc trong một khoảng price.

listings đã được nạp, và sf, tidyverse cùng leaflet đã được import.

Bài tập này là một phần của khóa học

Xây dựng Dashboard với shinydashboard

Xem khóa học

Hướng dẫn bài tập

  • Lọc listings sao cho dữ liệu chỉ nằm giữa hai giới hạn trái và phải của đối số range, vốn là một placeholder cho input của shinyApp.
  • Đặt điều kiện if-else đúng để vẽ boxplot khi choice khớp "Box plots", và vẽ violin plot khi là "Violin plots".

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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()
}}
Chỉnh sửa và Chạy Mã