Hulpfuncties maken
Er zijn veel elementen die je kunt toevoegen aan een shinydashboard. Om interacties tussen gebruikersinvoer en dashboarduitvoer mogelijk te maken, moet je deze interacties definiëren binnen de render-functies die op de server staan.
De code kan al snel onoverzichtelijk worden als er veel interacties en veel outputs zijn. Een manier om dit te omzeilen is door je eigen hulpfuncties te maken buiten de shinydashboard-omgeving.
Hieronder ga je twee hulpfuncties bouwen:
num_listings(): Geeft het aantal vermeldingen terug op basis van gefilterde gegevens binnen eenprice-bereik.make_plots(): Maakt ofwel boxplots of violindiagrammen op basis van de keuze van de gebruiker, en op basis van gefilterde gegevens binnen eenprice-bereik.
listings is geladen, en sf, tidyverse en leaflet zijn geïmporteerd.
Deze oefening maakt deel uit van de cursus
Dashboards bouwen met shinydashboard
Oefeninstructies
- Filter
listingszodat deze beperkt is tot tussen de linker- en rechtergrens van het argumentrange, dat een placeholder is voor een shinyApp-input. - Stel de juiste if-else-voorwaarden in zodat boxplots worden getekend wanneer
choiceovereenkomt met"Box plots", en violindiagrammen als het"Violin plots"is.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
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()
}}