НачатьНачать бесплатно

Создание вспомогательных функций

В shinydashboard можно добавить множество различных элементов. Чтобы обеспечить взаимодействие между вводом пользователя и выводом дашборда, необходимо описать эти взаимодействия внутри функций render, которые размещаются в блоке server.

Код может быстро стать громоздким, если взаимодействий и выходных элементов много. Один из способов решить эту проблему — создать собственные вспомогательные функции вне среды shinydashboard.

В этом упражнении вы построите две вспомогательные функции:

  1. num_listings(): возвращает количество объявлений на основе отфильтрованных данных в заданном диапазоне цен price.
  2. make_plots(): создаёт либо ящичковые диаграммы, либо скрипичные диаграммы в зависимости от выбора пользователя и отфильтрованных данных в диапазоне цен price.

Набор данных listings уже загружен, пакеты sf, tidyverse и leaflet подключены.

Это упражнение является частью курса

Создание дашбордов с помощью shinydashboard

Посмотреть курс

Инструкции к упражнению

  • Отфильтруйте listings так, чтобы данные находились в пределах между левым и правым значениями аргумента range — заполнителя для входных данных shinyApp.
  • Задайте правильные условия if-else: ящичковые диаграммы должны строиться, когда 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()
}}
Редактировать и запускать код