Kom igångKom igång gratis

Skapa hjälpfunktioner

Det finns många element som kan läggas till i ett shinydashboard. För att möjliggöra interaktion mellan användarindata och dashboardutdata behöver du definiera dessa interaktioner i de renderfunktioner som placeras i servern.

Koden kan snabbt bli svårhanterlig om det finns många interaktioner och många utdata. Ett sätt att lösa det problemet är att skapa egna hjälpfunktioner utanför shinydashboard-miljön.

I det följande ska du skapa två hjälpfunktioner:

  1. num_listings(): Returnerar antalet annonser baserat på filtrerad data inom ett price-intervall.
  2. make_plots(): Skapar antingen lådagram eller violindiagram baserat på användarens val och filtrerad data inom ett price-intervall.

listings är inläst och sf, tidyverse samt leaflet har importerats.

Den här övningen är en del av kursen

Bygga dashboards med shinydashboard

Visa kurs

Övningsinstruktioner

  • Filtrera listings så att det begränsas till det vänstra och högra gränsvärdet i argumentet range, som är en platshållare för en shinyApp-indata.
  • Ange rätt if-else-villkor så att lådagram ritas när choice matchar "Box plots", och violindiagram om det är "Violin plots".

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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()
}}
Redigera och kör kod