Crearea unor funcții ajutătoare
Unui shinydashboard i se pot adăuga foarte multe elemente. Pentru a permite interacțiunile dintre intrările utilizatorului și rezultatele afișate în dashboard, trebuie să definești aceste interacțiuni în interiorul funcțiilor render plasate în server.
Codul poate deveni rapid greu de gestionat atunci când există multe interacțiuni și multe rezultate. O soluție pentru această problemă este să îți creezi propriile funcții ajutătoare în afara mediului shinydashboard.
În continuare, vei construi două funcții ajutătoare:
num_listings(): Returnează numărul de listări pe baza datelor filtrate dintr-un interval deprice.make_plots(): Creează boxplot-uri sau grafice vioară în funcție de selecția utilizatorului și de datele filtrate dintr-un interval deprice.
listings este încărcat, iar sf, tidyverse și leaflet au fost importate.
Acest exercițiu face parte din cursul
Crearea dashboardurilor cu shinydashboard
Instrucțiuni pentru exercițiu
- Filtrează
listingsastfel încât să fie restricționat între limitele stânga și dreapta ale argumentuluirange, care este un substituent pentru un input din shinyApp. - Setează condițiile if-else corecte, astfel încât boxplot-urile să fie reprezentate grafic când
choicecorespunde valorii"Box plots", iar graficele vioară când corespunde valorii"Violin plots".
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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()
}}