ÎncepețiÎncepe gratuit

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:

  1. num_listings(): Returnează numărul de listări pe baza datelor filtrate dintr-un interval de price.
  2. make_plots(): Creează boxplot-uri sau grafice vioară în funcție de selecția utilizatorului și de datele filtrate dintr-un interval de price.

listings este încărcat, iar sf, tidyverse și leaflet au fost importate.

Acest exercițiu face parte din cursul

Crearea dashboardurilor cu shinydashboard

Vezi cursul

Instrucțiuni pentru exercițiu

  • Filtrează listings astfel încât să fie restricționat între limitele stânga și dreapta ale argumentului range, 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 choice corespunde 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()
}}
Editează și rulează codul