Membuat beberapa fungsi pembantu
Ada banyak elemen yang dapat ditambahkan ke sebuah shinydashboard. Untuk memungkinkan interaksi antara masukan pengguna dan keluaran dasbor, Anda perlu mendefinisikan interaksi tersebut di dalam fungsi render yang ditempatkan di server.
Kodenya dapat cepat menjadi rumit jika ada banyak interaksi dan banyak keluaran. Salah satu cara untuk mengatasi masalah ini adalah dengan membuat fungsi pembantu Anda sendiri di luar lingkungan shinydashboard.
Berikut ini, Anda akan membangun dua fungsi pembantu:
num_listings(): Mengembalikan jumlah listing berdasarkan data tersaring dalam rentangprice.make_plots(): Membuat boxplot atau violin plot berdasarkan pilihan pengguna, dan berdasarkan data tersaring dalam rentangprice.
listings sudah dimuat, dan sf, tidyverse, serta leaflet telah diimpor.
Latihan ini merupakan bagian dari kursus
Membangun Dashboard dengan shinydashboard
Instruksi latihan
- Saring
listingssehingga dibatasi antara batas kiri dan kanan dari argumenrange, yang merupakan placeholder untuk input shinyApp. - Tetapkan kondisi if-else yang benar sehingga boxplot digambar ketika
choicesama dengan"Box plots", dan violin plot jika"Violin plots".
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
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()
}}