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:
num_listings(): Returnerar antalet annonser baserat på filtrerad data inom ettprice-intervall.make_plots(): Skapar antingen lådagram eller violindiagram baserat på användarens val och filtrerad data inom ettprice-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
Övningsinstruktioner
- Filtrera
listingsså att det begränsas till det vänstra och högra gränsvärdet i argumentetrange, som är en platshållare för en shinyApp-indata. - Ange rätt if-else-villkor så att lådagram ritas när
choicematchar"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()
}}