R Лъскав урок: Всичко, което трябва да знаете



Този урок 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 apps. Структурата на кода играе основната роля при разбирането и отстраняването на грешки в кода. Тази функция е от решаващо значение за лъскавите приложения по отношение на други приложения.

Нека да преминем към следващата тема в урок R Shiny, инсталирайки пакета R Shiny.

Инсталиране на R Shiny

Инсталирането на Shiny е като инсталирането на всеки друг пакет в R. Отидете на R конзола и изпълнете командата по-долу, за да инсталирате пакета Shiny.



install.packages ('лъскава')

Инсталирайте R Shiny - R лъскав урок - Edureka

След като инсталирате, заредете пакета Shiny, за да създадете Shiny apps.

библиотека (лъскава)

Преди да продължим по-нататък в този урок за R лъскава, нека видим и разберем структурата на Shiny приложение.

Структура на лъскаво приложение

Shiny се състои от 3 компонента:

  1. Потребителски интерфейс
  2. Сървър
  3. ShinyApp

един.Функция на потребителския интерфейс

Потребителски интерфейс Функцията (UI) определя оформлението и външния вид на приложението. Можете да добавите CSS и HTML маркери в приложението, за да направите приложението по-представително. Функцията съдържа всички входове и изходи, които да се показват в приложението. Всеки елемент (разделение или раздел или меню) в приложението се дефинира с помощта на функции. Те са достъпни с помощта на уникален идентификатор, като HTML елементи.Нека научим повече за различнифункции, използвани в приложението.

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

  • headerPanel ()добавете заглавие към приложението. titlePanel () определя подзаглавието на приложението. Вижте изображението по-долу за по-добро разбиране на headerPanel и titlePanel .
  • SidebarLayout ()определя оформлението за задържане странична лента Панел и mainPanel елементи. Оформлението разделя екрана на приложението на панела на страничната лента и основния панел. Например в изображението по-долу червеният правоъгълник е mainPanel площ и областта на черния правоъгълник вертикално е странична лента Панел ■ площ.

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

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

какво представлява смесването на данни в таблицата

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

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

Всяка входна джаджа има етикет, Id, други параметри като избор, стойност, избран, мин, макс и др.

  • 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 ()- създаване на радио бутони за въвеждане от потребителя.
radioButtons ('radio', h3 ('Radio бутона'), choices = list ('Choice 1' = 1, 'Choice 2' = 2, 'Choice 3' = 3), selected = 1)

Блестящи изходни функции

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

  • plotOutput ()- показва R обект на парцел.
plotOutput'top_batsman ')
  • tableOutput ()- показва изхода като таблица.
tableOutput'player_table ')

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

Сървър функция dусъвършенства логиката от страна на сървъра на приложението Shiny. Той включва създаване на функции и изходи, които използват входове за производство на различни видове изход. Всеки клиент (уеб браузър) извиква сървърната функция, когато за първи път зареди приложението Shiny. Всеки изход съхранява връщаната стойност от функциите за рендиране.

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

визуализиране * функциите извършват изчисленията вътре в сървърната функция и съхраняват в изходните променливи. Изходът трябва да бъде запазен с изход $ [име на изходна променлива] . Всеки визуализиране * функцията приема един аргумент, т.е. R израз, заобиколен от скоби, {}.

3. Функция ShinyApp

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

Изображението по-долу показва контурите на приложението Shiny.

Нека да преминем към следващия сегмент в урок R Shiny, за да създадем първото R Shiny App.

Създайте лъскав уеб проект

Отидете на Файл и Създайте a Нов проект във всяка директория -> Лъскаво уеб приложение -> [Име на директория с лъскави приложения]. Въведете името на директорията и щракнете Добре .

Всеки нов проект на Shiny app ще съдържа пример за хистограма, за да разбере основите на лъскавото приложение. Приложението за хистограма съдържа плъзгач, последван от хистограма, която актуализира изхода за промяна в плъзгача. По-долу е изходът на приложението за хистограма.

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

как да пишете в java -

Сега, след като разбрахте структурата и как да стартирате приложение Shiny. Нека да продължим със създаването на първото ни лъскаво приложение.

Създайте първото лъскаво приложение

Можете или да създадете нов проект, или да продължите в същата работна директория. В този урок R Shiny ще създадем просто приложение Shiny, което да показва IPL статистика. Наборът от данни, използван в приложението, може да бъде изтеглен тук . Наборът от данни съдържа 2 файла, доставки.csv съдържа резултатите за всяка топка (над) батсман, боулинг, подробности за бягане и съвпадения.csv файлът съдържа подробности за мача като местоположение на мача, хвърляне, място и подробности за играта. Приложението по-долу изисква основни познания за dplyr и за да разберете по-долу урок.

Следвайте стъпките по-долу, за да създадете първото си лъскаво приложение.

Етап 1 : Създайте контур на лъскаво приложение.

Изчистете съществуващия код, с изключение на дефинициите на функции в ап . R файл.

Стъпка 2 : Заредете библиотеки и данни.

В тази стъпка зареждаме необходимите пакети и данни. След това почистете и трансформирайте извлечените данни в необходимия формат. Добавете кода по-долу преди ЛУК и сървър функция.

Код:

библиотека (лъскава) библиотека (tidyverse) # Зареждане на набор от данни --------------------------------------- ---------------- доставки = read.csv ('C: UsersCherukuri_SindhuDownloadsdeliveries.csv', stringsAsFactors = FALSE) съвпадения = read.csv ('C: UsersCherukuri_SindhuDownloadsmatches.csv', stringsAsFactors = FALSE) # Почистване на набор от данни --------------------------------------------- --------- имена (съвпадения) [1] = 'match_id' IPL = dplyr :: inner_join (съвпадения, доставки)

Обяснение :

Зареждат се първите 2 реда tidyverse и Лъскав пакет. Следващите 2 реда зареждат набори от данни доставки и съвпадения и съхраняват в променливидоставкиимачове. Последните 2 реда актуализират името на колоната намачовенабор от данни за извършване на вътрешно съединяване сдоставкимаса. Съхраняваме резултата от присъединяването вIPLпроменлива.

Стъпка 3 : Създайте оформлението на Shiny app .

Както беше обсъдено по-горе, ЛУК функцията определя външния вид на приложението, приспособления и обекти в приложението 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')) ) )))

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

Обяснение

Приложението се състои от 2 раздела: Сезон и Отборни победи и точки.

Сезон раздел се състои от selectInput ( ) , бутон за изпращане и таблица. season_year се използва за четене на входни данни от lе на ценности. tableOutput () показва изхода на таблицата, изчислен за сървърната функция.Таблица player_table се показва под бутона, който е дефиниран в сървърната функция, която ще бъде обсъдена в следващата стъпка. Отборни победи и точки раздел показва печалба в екип и точки в съответните бар класации. plotOutput () показва изходи, върнати от render * функции. Всички изходни, входни функции са затворени в div таг за добавяне на вграден стил.

Сега, когато сме запознати с ui функцията, нека продължим с разбирането и използването на сървърната функция в нашия урок R Shiny.

Стъпка 4: Добавете извлеченията за сървърни функции

The сървър функция включва създаване на функции и outputs, които използват потребителски входове за производство на различни видове изход. Theсървърната функция е обяснена стъпка по стъпка по-долу.

match_year = реактивен ({match%>% filter (season == input $ season_year)}) плейоф = реактивен ({nth (sort (matches_year () $ match_id, decreasing = TRUE), 4)}) match_played = reactive ({match_year ()%>% филтър (match_id% group_by (team1)%>% summise (count = n ())}) t2 = реактивен ({match_played ()%>% group_by (team2)%>% обобщение (count = n ( ))}) wl = реактивен ({match_played ()%>% филтър (победител! = '')%>% group_by (победител)%>% обобщава (no_of_wins = n ())}) wl1 = реактивен ({match_played ( )%>% group_by (победител)%>% обобщава (no_of_wins = n ())}) завързан = реактивен ({match_played ()%>% filter (winner == '')%>% select (team1, team2)} ) playertable = реактивен ({data.frame (Teams = t1 () $ team1, Played = t1 () $ count + t2 () $ count, Wins = wl () $ no_of_wins, Points = wl () $ no_of_wins * 2) })

Горните кодови филтриращи мачове, играни преди плейофи всяка година, и съхраняват резултата в променливата match_played.player_tableтаблицата съдържа отборни статистически данни за мачове, т.е. изиграни, победи и точки. Променливимачове_играни,player_table,t1,вързан, и т.н. са междинни реактивни стойности . Тези променливи трябва да бъдат достъпни с помощта на (), както е показано в горния код.player_tableсе показва с помощта на функцията renderTable. След това създайте изходната променлива, за да съхранявате playtable.

какво е хешсет Java
изход $ 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 ('Teams') + ylab ('Брой победи') + тема (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 ( Екипи, Точки, запълване = Екипи)) + geom_bar (stat = 'идентичност', размер = 3) + theme_classic () + тема (axis.text.x = element_text (color = 'white'), legend.text = element_text ( size = 14), axis.title = text_text (size = 14)) + geom_text (aes (Teams, (Points + 1), label = Points, size = 7))})

Стъпка 5: Стартирайте приложението Shiny.

Кликнете върху Изпълни приложението. С успешен старт, вашето приложение Shiny ще изглежда по-долу. Всяка грешка или предупреждениесвързани с приложението, ще ги покаже в R Console.

Tab1 - Сезон

Tab2 - Отборни победи и точки

Нека да видим какустройвам, поставям, измамвамАкаунт в Shinyapps.io, за да внедрите вашите лъскави приложения.

Настройте акаунт в Shinyapps.io

Отидете на Сhinyapps.io и влезте с вашата информация, след това дайте уникално име на акаунта за страницата и го запазете. След успешно запазване ще видите подробна процедура за разполагане на приложения от R Console. Следвайте процедурата по-долу, за да конфигурирате акаунта си в Rstudio.

Етап 1. Инсталирайте rsconnect

install.packages ('rsconnect')

Стъпка 2. Упълномощаване на акаунт

The rsconnect пакет трябва да бъде упълномощен за вашия акаунт с помощта на знак и секрет. За да направите това, копирайте цялата команда, както е показано по-долу на страницата на таблото ви за управление в R конзола. След като въведете командата успешно в R, сега ви упълномощавам да разположите приложения във вашия акаунт в Shinyapps.io.

rsconnect :: setAccountInfo (name = 'име на акаунт', token = 'token', secret = 'secret')

Стъпка 3. Разполагане на приложение

Използвайте кода по-долу, за да внедрите лъскави приложения.

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

Веднъж зададени, сте готови да внедрите лъскавите си приложения.

След като научихте как да създавате и стартирате Shiny apps, внедрете току-що създаденото от нас приложение в Shinyapps.io, както е обяснено по-горе, или кликнете върху публикувам, който се намира в горния десен ъгъл на прозореца на Shiny app.

Надявам сече този урок R Shiny ви помогна да се научите как да създавате и стартирате приложение Shiny. Забавлявайте се, създавайки интерактивни и красиви уеб приложения, използвайки R Shiny.

Ако искате да научите R програмиране и да изградите цветна кариера в Data Analytics, тогава разгледайте нашата което се предлага с обучение под ръководството на инструктори на живо и опит в реалния живот на проекти. Това обучение ще ви помогне да разберете анализа на данни и ще ви помогне да постигнете майсторство по темата.