Aan de slagBegin gratis

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:

  1. num_listings(): Geeft het aantal vermeldingen terug op basis van gefilterde gegevens binnen een price-bereik.
  2. make_plots(): Maakt ofwel boxplots of violindiagrammen op basis van de keuze van de gebruiker, en op basis van gefilterde gegevens binnen een price-bereik.

listings is geladen, en sf, tidyverse en leaflet zijn geïmporteerd.

Deze oefening maakt deel uit van de cursus

Dashboards bouwen met shinydashboard

Bekijk cursus

Oefeninstructies

  • Filter listings zodat deze beperkt is tot tussen de linker- en rechtergrens van het argument range, dat een placeholder is voor een shinyApp-input.
  • Stel de juiste if-else-voorwaarden in zodat boxplots worden getekend wanneer choice overeenkomt 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()
}}
Code bewerken en uitvoeren