Створення допоміжних функцій
До shinydashboard можна додати багато елементів. Щоб налаштувати взаємодію між введеннями користувача та виходами панелі, ці взаємодії потрібно визначити у функціях render, які розміщені в сервері.
Код може дуже швидко стати громіздким, якщо взаємодій і виходів багато. Один зі способів розв'язати цю проблему — створити власні допоміжні функції поза середовищем shinydashboard.
Далі ви побудуєте дві допоміжні функції:
num_listings(): Повертає кількість оголошень на основі відфільтрованих даних у межах діапазонуprice.make_plots(): Створює або boxplot-и, або графіки-скрипки (violin plots) залежно від вибору користувача та на основі відфільтрованих даних у межах діапазонуprice.
listings завантажено, а sf, tidyverse і leaflet імпортовано.
Ця вправа є частиною курсу
Створення панелей керування з shinydashboard
Інструкції до вправи
- Відфільтруйте
listings, щоб залишилися записи між лівою та правою межами аргументуrange, який є заповнювачем для вводу shinyApp. - Задайте коректні умови if-else так, щоб будувалися boxplot-и, коли
choiceдорівнює"Box plots", і графіки-скрипки, якщо це"Violin plots".
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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()
}}