Пошаговое руководство по созданию вашей первой интерактивной панели инструментов

Интерактивные информационные панели позволяют пользователям получать ценную информацию о ключевых показателях и принимать решения на основе данных. Интерактивность помогает оптимизировать использование пространства приборной панели и автоматически обновляет визуализации, когда пользователь меняет вводимые данные.

Интерактивные панели управления с R (Flexdashboard + Shiny)

Flexdashboard - это файл уценки R, который может быть статическим или динамическим. Объединив flexdashboard с Shiny, вы можете писать динамические веб-приложения без каких-либо знаний HTML, CSS или JavaScript, используя только R и R.

В этой статье мы рассмотрим простые шаги создания вашего первого приложения Shiny на гибкой панели управления. Мы сделаем это приложение максимально простым с двумя пользовательскими входами и тремя реактивными выходами. Как только вы поймете основы, вы сможете использовать те же методы для создания более сложных панелей мониторинга.

Прежде чем мы начнем, убедитесь, что вы установили следующие библиотеки: shiny, flexdashboard, plotly, и dplyr.

Шаг 1. Создайте макет Flexdashboard

Инициализируйте Flexdashboard из R Studio, используя Файл ›Новый файл› Уценка R ›Из шаблона› Flex Dashboard, сохраните и свяжите документ.

Это создает статическую панель с двумя столбцами с одной диаграммой слева и двумя справа:

Шаг 2. Настройте Flexdashboard.

```
1. Add runtime: shiny to the YAML header at the top of the document. This specifies that the Shiny package will be used to handle reactive content.
2. Load the libraries flexdashboard, shiny, dplyr, and plotly.
3. Add a new code chunk 
 {r data} where we will load and work with the data.
4. Add sidebar attribute to the first column of the dashboard. The default width of the sidebar is 250 pixels; let’s change it to 200. Later, we will add user input controls to the sidebar.
5. Slightly change the layout dimensions by making each column width equal to 400 pixels.
```

Если вы выполнили эти шаги, ваш макет должен выглядеть, как показано ниже. В противном случае вы можете скопировать и вставить следующий шаблон.

Шаг 3. Получите и подготовьте данные

В этом примере мы будем использовать подмножество набора данных Клиенты по кредитным картам от Kaggle для изучения профилей клиентов с помощью исследовательского анализа данных. Давайте загрузим и подготовим данные под фрагментом кода на панели инструментов.

Не забудьте хранить и панель управления, и данные в одном рабочем каталоге!

Шаг 4. Создание пользовательских входов (виджетов)

Вводимые пользователем данные являются ключевыми компонентами динамической панели мониторинга, функциональности вождения, взаимодействия с пользователем и конечных результатов.

Виджет SelectInput создает простое раскрывающееся меню. В виджете SelectInput мы указываем три аргумента: (1) name: невидимо для пользователя, которое мы используем для доступа к значению виджета, (2) label: отображается над раскрывающимся меню и (3) варианты: список значений для выбора пользователем.

Мы создадим два виджета SelectInput на боковой панели панели инструментов, что позволит пользователю выбрать категориальную переменную и числовую переменную.

При рендеринге панель управления должна выглядеть так:

Шаг 5. Создание реактивных выходов - динамическое содержимое

Реактивность - это то, что делает приложения Shiny отзывчивыми, автоматически обновляясь всякий раз, когда пользователь вносит изменения. Чтобы сделать вывод реактивным, мы используем функции рендеринга Shiny. Изменения входных данных автоматически отображают код и обновляют выходные данные. Shiny предлагает широкий спектр функций рендеринга:

renderPlot - renders standard R plots 
renderLeaflet — renders leaflet output
renderDT — renders DT DataTables
renderPlotly — renders plotly

В этом проекте мы создадим диаграммы Plotly: (1) коробчатую диаграмму, (2) гистограмму и (3) гистограмму. Мы используем renderPlotly для вставки диаграмм Plotly . Графики, включенные в функцию renderPlotly, будут автоматически обновляться каждый раз, когда пользователь изменяет соответствующее входное значение.

1. The boxplot will react to a change in either widget.
2. The bar chart will react to a change in the categorical variable widget.
3. The histogram will react to a change in the numeric variable widget.

Код создает приложение ниже:

Вы можете найти окончательный код здесь, а готовую панель инструментов можно найти по следующей ссылке.

Резюме

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

Спасибо!

использованная литература