Учебник по R Shiny: все, что вам нужно знать



Это руководство по R Shiny предоставит вам подробные и всесторонние знания о R Shiny и о том, как создавать интерактивные веб-приложения.

С развитием технологий появились новые инструменты и фреймворки для создания веб-приложений, отображающих статистику, карты и графики в реальном времени. Поскольку эти функции требуют высокой обработки и синхронизации, языки программирования используются для сокращения времени загрузки сервера. В этом руководстве по R Shiny я объясню, как наилучшим образом использовать R в динамических веб-приложениях.

Мы рассмотрим и разберем следующие темы:





Что такое R Shiny?

Shiny - это пакет R, который позволяет пользователям создавать интерактивные веб-приложения. Этот инструмент создает веб-приложение, эквивалентное HTML, из блестящего кода. Мы интегрируем собственный код HTML и CSS с функциями R Shiny, чтобы сделать приложение презентабельным. Shiny сочетает в себе вычислительную мощность R с интерактивностью современного Интернета.Shiny создает веб-приложения, которые развертываются в Интернете с помощью вашего сервера или услуг хостинга R Shiny.

Особенности R Shiny:

  • Создавайте простые приложения с базовыми знаниями веб-инструментов или без них
  • Интегрируйте Shiny с собственными веб-инструментами для повышения гибкости и производительности
  • Встроенные функции ввода-вывода и рендеринга
  • Простой рендеринг содержимого приложения без многократных перезагрузок
  • Возможность добавления вычисленных (или обработанных) выходных данных из сценариев R
  • Добавляйте живые отчеты и визуализации.

Это подводит нас к вопросу:



Чем Shiny отличается от традиционных приложений?

Давайте возьмем пример погодного приложения: всякий раз, когда пользователь обновляет / загружает страницу или изменяет любой ввод, он должен обновлять всю страницу или часть страницы с помощью JS. Это увеличивает нагрузку на серверную часть для обработки. Shiny позволяет пользователю изолировать или отображать (или перезагружать) элементы в приложении, что снижает нагрузку на сервер. Прокрутка страниц была простой в традиционных веб-приложениях, но была сложной в приложениях Shiny. Структура кода играет основную роль в понимании и отладке кода. Эта функция важна для блестящих приложений по сравнению с другими приложениями.

Давайте перейдем к следующей теме в руководстве по R Shiny - установке пакета R Shiny.

Установка R Shiny

Установка Shiny аналогична установке любого другого пакета в R. Консоль R и запустите приведенную ниже команду, чтобы установить пакет Shiny.



install.packages ('блестящий')

Учебник по установке R Shiny - R shiny - Edureka

После установки загрузите пакет Shiny для создания приложений Shiny.

библиотека (блестящая)

Прежде чем мы продолжим изучение этого блестящего руководства по R, давайте посмотрим и разберемся со структурой приложения Shiny.

Структура блестящего приложения

Shiny состоит из 3 компонентов:

  1. Пользовательский интерфейс
  2. Сервер
  3. ShinyApp

один.Функция пользовательского интерфейса

Пользовательский интерфейс (UI) функция определяет макет и внешний вид приложения. Вы можете добавить в приложение теги CSS и HTML, чтобы сделать приложение более презентабельным. Функция содержит все входы и выходы, которые будут отображаться в приложении. Каждый элемент (раздел, вкладка или меню) внутри приложения определяется с помощью функций. Доступ к ним осуществляется с использованием уникального идентификатора, например элементов HTML.Давайте узнаем больше о различныхфункции, используемые в приложении.

Блестящие функции макета

  • headerPanel ()добавить заголовок в приложение. titlePanel () определяет подзаголовок приложения. См. Изображение ниже, чтобы лучше понять headerPanel и titlePanel .
  • SidebarLayout ()определяет макет для хранения sidebarPanel и mainPanel элементы. Макет делит экран приложения на боковую панель и основную панель.. Например, на изображении ниже красный прямоугольник - это mainPanel область, а область черного прямоугольника по вертикали sidebarPanel площадь.

  • wellPanel ()определяет контейнер, содержащий несколько объектов ввода / вывода приложения в одной сетке.
  • tabsetPanel ()создает контейнер для вкладок. tabPanel () добавляет вкладку в приложение, определяя элементы и компоненты вкладки. На изображении ниже черныйпрямоугольник tabsetPanel объект, а красный прямоугольник - это tabPanel объект.
  • navlistPanel ()предоставляет боковое меню со ссылками на различные панели вкладок, аналогичные tabsetPanel () как вертикальный список в левой части экрана. На изображении ниже черный прямоугольник navlistPanel объект, а красный прямоугольник - это tabPanel объект.

Наряду с функциями компоновки Shiny вы также можете добавить встроенный CSS в каждый виджет ввода в приложении.Приложение Shiny включает в себя функции веб-технологий вместе с блестящими функциями и функциями R, чтобы обогатить приложение. Используйте HTML-теги в приложении Shiny, используя теги $.

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

Блестящие функции ввода

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

  • selectInput ()- создать выпадающий HTML-элемент.
selectInput ('select', h3 ('Select box'), choices = list ('Choice 1' = 1, 'Choice 2' = 2, 'Choice 3' = 3), selected = 1).

  • numericInput ()- область ввода для ввода числа или текста.
dateInput ('num', 'Date input', value = '2014-01-01') numericInput ('num', 'Numeric input', value = 1) textInput ('num', 'Numeric input', value = '). Введите текст ... ')

  • Радио-кнопки()- создать радиокнопки для пользовательского ввода.
radioButtons ('radio', h3 ('Radio buttons'), choices = list ('Choice 1' = 1, 'Choice 2' = 2, 'Choice 3' = 3), selected = 1)

Блестящие функции вывода

Shiny предоставляет различные функции вывода, отображающие р выходы, такие как графики, изображения, таблицы и т. д., которые отображают соответствующие р объект.

  • plotOutput ()- отобразить объект графика R.
plotOutput'top_batsman ')
  • tableOutput ()- выводит результат в виде таблицы.
tableOutput'player_table ')

2. Функция сервера

Сервер функция dУточняет серверную логику приложения Shiny. Он включает в себя создание функций и выходов, которые используют входы для создания различных видов выходных данных. Каждый клиент (веб-браузер) вызывает функцию сервера при первой загрузке приложения Shiny. Каждый вывод сохраняет значение, возвращаемое функциями рендеринга.

Эти функции захватывают выражение R и выполняют вычисления и предварительную обработку выражения. Используйте функцию render *, которая соответствует определяемому вами выходу. Мы получаем доступ к виджетам вводас помощью ввод $ [идентификатор-виджета] . Эти входные переменные являются реактивными значениями. Любые промежуточные переменные, созданные с использованием входных переменных, необходимо сделать реактивными с помощью реактивный ({}) . Доступ к переменным осуществляется с помощью ().

оказывать * функции выполняют вычисления внутри функции сервера и сохраняют в выходных переменных. Вывод необходимо сохранить с помощью output $ [имя выходной переменной] . Каждый оказывать * функция принимает единственный аргумент, т.е. выражение R, заключенное в фигурные скобки, {}.

3. Функция ShinyApp

shinyApp ()функция - это сердцеприложение, которое вызывает ЛУК и сервер функции для создания блестящего приложения.

На изображении ниже показан контур приложения Shiny.

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

Создать блестящий веб-проект

как использовать python в анаконде

Перейти к файл и создать Новый проект в любом каталоге -> Блестящее веб-приложение -> [Имя каталога блестящих приложений]. Введите название каталога и нажмите ОК .

Каждый новый проект приложения Shiny будет содержать пример гистограммы, чтобы понять основы блестящего приложения. Приложение гистограммы содержит ползунок, за которым следует гистограмма, которая обновляет вывод при изменении ползунка. Ниже представлен результат работы приложения гистограммы.

Чтобы запустить приложение Shiny, щелкните значок Запустить приложение в правом верхнем углу панели источника. Приложение Shiny отображает виджет ползунка, который принимает количество ячеек в качестве входных данных и отображает гистограмму в соответствии с входными данными.

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

Создайте первое приложение Shiny

Вы можете создать новый проект или продолжить в том же рабочем каталоге. В этом руководстве по R Shiny мы создадим простое приложение Shiny для отображения статистики IPL. Набор данных, используемый в приложении, можно скачать Вот . Набор данных состоит из 2 файлов, deliveryies.csv содержит количество очков для каждого мяча (в овере) игрока с битой, боулера, детали трассы и match.csv Файл содержит детали матча, такие как место матча, жеребьевка, место проведения и детали игры. Приведенное ниже приложение требует базовых знаний dplyr и чтобы понять приведенное ниже руководство.

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

Шаг 1 : Создайте схему блестящего приложения.

Очистите существующий код, за исключением определений функций в приложение . р файл.

Шаг 2 : Загрузите библиотеки и данные.

На этом этапе мы загружаем необходимые пакеты и данные. Затем очистите и преобразуйте извлеченные данные в требуемый формат. Добавьте приведенный ниже код перед ЛУК и сервер функция.

Код:

library (shiny) library (tidyverse) # Загрузка набора данных --------------------------------------- ---------------- deliveryies = read.csv ('C: UsersCherukuri_SindhuDownloadsdeliveries.csv', stringsAsFactors = FALSE) соответствует = read.csv ('C: UsersCherukuri_SindhuDownloadsmatches.csv', stringsAsFactors = FALSE) # Cleaning Dataset --------------------------------------------- --------- names (совпадения) [1] = 'match_id' IPL = dplyr :: inner_join (совпадения, доставки)

Объяснение :

Первые 2 строки загружаются тидиверс и Блестящий пакет. Следующие 2 строки загружают поставки и сопоставления наборов данных и сохраняют их в переменных.поставкиисовпадения. Последние 2 строки обновляют имя столбцасовпадениянабор данных для выполнения внутреннего соединения споставкиТаблица. Мы сохраняем результат соединения вIPLпеременная.

Шаг 3 : Создайте макет приложения Shiny .

Как обсуждалось ранее, ЛУК определяет внешний вид, виджеты и объекты приложения в приложении Shiny.Давайте обсудим то же самое подробнее.

Код

лук<- fluidPage( headerPanel('IPL - Indian Premier League'), tabsetPanel( tabPanel(title = 'Season', mainPanel(width = 12,align = 'center', selectInput('season_year','Select Season',choices=unique(sort(matches$season, decreasing=TRUE)), selected = 2019), submitButton('Go'), tags$h3('Players table'), div(style = 'border:1px black solidwidth:50%',tableOutput('player_table')) )), tabPanel( title = 'Team Wins & Points', mainPanel(width = 12,align = 'center', tags$h3('Team Wins & Points'), div(style = 'float:leftwidth:36%',plotOutput('wins_bar_plot')), div(style = 'float:rightwidth:64%',plotOutput('points_bar_plot')) ) )))

В ЛУК функция содержит headerPanel () или titlePanel () а затем tabsetPanel для определения нескольких вкладок в приложении. tabPanel () определяет объекты для каждой вкладки соответственно. Каждый tabPanel () состоит из названия и mainPanel (). mainPanel () создает контейнер шириной 12, то есть полное окно, и выравнивает объекты ввода и вывода по центру.

Объяснение

Приложение состоит из 2-х вкладок: Время года и Командные победы и очки.

Время года вкладка состоит из selectInput ( ) , кнопку отправки и таблицу. Season_year используется для чтения ввода из lимеет ценности. tableOutput () отображает вывод таблицы, рассчитанный для функции сервера.Таблица player_table отображается под кнопкой, которая определена в функции сервера, которая будет обсуждаться на следующем шаге. Командные победы и очки Вкладка отображает командные победы и очки в соответствующих столбчатых диаграммах. plotOutput () отображает выходные данные, полученные от рендеринга * функции. Все функции вывода и ввода заключены в тег div для добавления встроенного стиля.

Теперь, когда мы знакомы с функцией ui, давайте продолжим понимание и использование функции сервера в нашем руководстве по R Shiny.

Шаг 4: Добавьте операторы функции сервера

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

match_year = реактивный ({соответствует%>% filter (season == input $ season_year)}) playoff = reactive ({nth (sort (matches_year () $ match_id, Убывающая = TRUE), 4)}) match_played = reactive ({match_year ()%>% filter (match_id% group_by (team1)%>% summarize (count = n ())}) t2 = reactive ({match_played ()%>% group_by (team2)%>% summarize (count = n ( ( )%>% group_by (победитель)%>% summarize (no_of_wins = n ())}) tied = reactive ({match_played ()%>% filter (Winter == '')%>% select (team1, team2)} ) playertable = reactive ({data.frame (Teams = t1 () $ team1, Сыграно = t1 () $ count + t2 () $ count, Wins = wl () $ no_of_wins, Points = wl () $ no_of_wins * 2) })

Вышеупомянутый фильтр кода соответствует, сыгранным перед плей-офф каждый год, и сохраняет результат в переменной match_played.player_tableТаблица содержит командную статистику матчей, т.е. сыгранные, победы и очки. Переменныеmatch_played,player_table,t1,привязанныйи т. д. все промежуточные реактивные значения . Доступ к этим переменным необходимо получить с помощью (), как показано в приведенном выше коде.player_tableотображается с помощью функции renderTable. Затем создайте выходную переменную для хранения playertable.

вывод $ player_table = renderTable ({playertable ()})

Теперь давайте создадим гистограммы, чтобы показать победы и очки, набранные каждой командой в сезоне. В приведенном ниже коде отображаются гистограммы с использованием ggplot. renderPlot () получает объект ggplot и сохраняет результат в переменнойwins_bar_plot.Код ggplot не требует пояснений, он включает в себя базовую графику и функции отображения для редактирования легенды, меток и графика.

вывод $ wins_bar_plot = renderPlot ({ggplot (wl1 () [2: 9,], aes (победитель, no_of_wins, fill = победитель)) + geom_bar (stat = 'identity') + theme_classic () + xlab ('Команды') + ylab ('Number Of Wins') + theme (axis.text.x = element_text (color = 'white'), legend.position = 'none', axis.title = element_text (size = 14), plot.background = element_rect (color = 'white')) + geom_text (aes (x = победитель, (no_of_wins + 0.6), label = no_of_wins, size = 7))}) вывод $ points_bar_plot = renderPlot ({ggplot (playertable (), aes ( Команды, очки, fill = Teams)) + geom_bar (stat = 'identity', size = 3) + theme_classic () + theme (axis.text.x = element_text (color = 'white'), legend.text = element_text ( size = 14), axis.title = element_text (size = 14)) + geom_text (aes (Teams, (Points + 1), label = Points, size = 7))})

Шаг 5: Запустите приложение Shiny.

Щелкните Запустить приложение. При успешном запуске ваше приложение Shiny будет выглядеть, как показано ниже. Любая ошибка или предупреждениеs, относящиеся к приложению, они будут отображаться в R Console.

Tab1 - Сезон

Tab2 - Командные победы и очки

Посмотрим, какустановитьАккаунт Shinyapps.io для развертывания ваших приложений Shiny.

Настройте учетную запись Shinyapps.io

Перейти к Shinyapps.io и войдите в систему, указав свои данные, затем укажите уникальное имя учетной записи для страницы и сохраните его. После успешного сохранения вы увидите подробную процедуру развертывания приложений из консоли R. Следуйте приведенной ниже процедуре, чтобы настроить свою учетную запись в Rstudio.

Шаг 1. Установить rsconnect

install.packages ('rsconnect')

Шаг 2. Авторизовать аккаунт

В rsconnect пакет должен быть авторизован в вашей учетной записи с использованием токена и секрета. Для этого скопируйте всю команду, как показано ниже на странице вашей панели в р консоль. После того, как вы успешно ввели команду в R, я разрешаю вам развертывать приложения в вашей учетной записи Shinyapps.io.

rsconnect :: setAccountInfo (имя = 'имя учетной записи', токен = 'токен', секрет = 'секрет')

Шаг 3. Развернуть приложение

Используйте приведенный ниже код для развертывания приложений Shiny.

библиотека (rsconnect) rsconnect :: deployApp ('путь / к / вашему / приложению')

После настройки вы готовы развертывать свои блестящие приложения.

Теперь, когда вы узнали, как создавать и запускать приложения Shiny, разверните приложение, которое мы только что создали, в Shinyapps.io, как описано выше, или нажмите публиковать, который находится в правом верхнем углу окна приложения Shiny.

надеюсьчто это руководство по R Shiny помогло вам научиться создавать и запускать приложение Shiny. Получайте удовольствие от создания интерактивных и красивых веб-приложений с помощью R Shiny.

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