R Shiny Tutorial: Tot ce trebuie să știți



Acest tutorial R Shiny vă va oferi cunoștințe detaliate și cuprinzătoare despre R Shiny și despre cum să creați aplicații web interactive.

Odată cu evoluția tehnologiei, au apărut instrumente și cadre mai noi pentru a construi aplicații web care afișează statistici, hărți și grafice în timp real. Deoarece aceste funcționalități necesită procesare și sincronizare ridicate, limbajele de programare sunt utilizate pentru a reduce timpul de încărcare a serverului. În acest tutorial R Shiny, voi explica cum să utilizați cel mai bine R pe aplicațiile web dinamice.

Vom acoperi și vom înțelege următoarele subiecte:





Ce este R Shiny?

Shiny este un pachet R care permite utilizatorilor să creeze aplicații web interactive. Acest instrument creează o aplicație web echivalentă HTML din codul Shiny. Integrăm codul nativ HTML și codul CSS cu funcțiile R Shiny pentru a face aplicația prezentabilă. Shiny combină puterea de calcul a lui R cu interactivitatea web-ului modern.Shiny creează aplicații web care sunt implementate pe web utilizând serverul dvs. sau serviciile de găzduire ale lui R Shiny.

Caracteristicile R Shiny:

  • Creați aplicații ușoare fără cunoștințe de bază sau fără cunoștințe despre instrumentele web
  • Integrați Shiny cu instrumentele web native pentru a îmbunătăți flexibilitatea și productivitatea
  • Funcții de I / O și redare preconstruite
  • Redarea ușoară a conținutului aplicației fără reîncărcări multiple
  • Funcție pentru a adăuga ieșiri computerizate (sau procesate) din scripturile R.
  • Adăugați rapoarte și vizualizări live.

Asta ne aduce la întrebarea:



În ce este diferit Shiny de aplicațiile tradiționale?

Ne permite să luăm un exemplu de aplicație meteo, ori de câte ori utilizatorul reîmprospătează / încarcă pagina sau modifică orice intrare, ar trebui să actualizeze întreaga pagină sau o parte a paginii folosind JS. Acest lucru adaugă încărcare pe partea de server pentru procesare. Shiny permite utilizatorului să izoleze sau să redea (sau să reîncarce) elemente din aplicație, ceea ce reduce încărcarea serverului. Derularea prin pagini a fost ușoară în aplicațiile web tradiționale, dar a fost dificilă cu aplicațiile Shiny. Structura codului joacă rolul principal în înțelegerea și depanarea codului. Această caracteristică este crucială pentru aplicațiile strălucitoare în raport cu alte aplicații.

Să trecem la următorul subiect din tutorialul R Shiny, instalând pachetul R Shiny.

Instalarea R Shiny

Instalarea Shiny este ca instalarea oricărui alt pachet în R. Accesați R Consolă și rulați comanda de mai jos pentru a instala pachetul Shiny.



install.packages („strălucitor”)

Instalați R Shiny - Tutorial R shiny - Edureka

După ce ați instalat, încărcați pachetul Shiny pentru a crea aplicații Shiny.

biblioteca (lucios)

Înainte de a trece mai departe în acest tutorial R shiny, să vedem și să înțelegem structura unei aplicații Shiny.

Structura unei aplicații Shiny

Shiny este format din 3 componente:

  1. Interfața cu utilizatorul
  2. Server
  3. ShinyApp

unu.Funcția de interfață utilizator

Interfața cu utilizatorul Funcția (UI) definește aspectul și aspectul aplicației. Puteți adăuga etichete CSS și HTML în cadrul aplicației pentru a face aplicația mai prezentabilă. Funcția conține toate intrările și ieșirile care trebuie afișate în aplicație. Fiecare element (diviziune sau filă sau meniu) din aplicație este definit folosind funcții. Acestea sunt accesate utilizând un id unic, cum ar fi elementele HTML.Să învățăm mai multe despre diversefuncții utilizate în aplicație.

Funcții de aspect lucios

  • headerPanel ()adăugați un titlu la aplicație. titlePanel () definește subtitlul aplicației. Vedeți imaginea de mai jos pentru o mai bună înțelegere headerPanel și titlePanel .
  • SidebarLayout ()definește aspectul de menținut sidebarPanel și mainPanel elemente. Aspectul împarte ecranul aplicației în panoul barei laterale și panoul principal. De exemplu, în imaginea de mai jos, dreptunghiul roșu este mainPanel aria și zona dreptunghiului negru pe verticală este sidebarPanel zonă.

  • wellPanel ()definește un container care deține mai multe obiecte de intrare / ieșire a aplicațiilor în aceeași grilă.
  • tabsetPanel ()creează un container pentru a păstra filele. tabPanel () adaugă filă în aplicație definind elemente și componente de filă. În imaginea de mai jos, negrudreptunghi este tabsetPanel obiect și dreptunghiul roșu este tabPanel obiect.
  • navlistPanel ()oferă un meniu lateral cu legături către diferite panouri de file similare cu tabsetPanel () ca o listă verticală din partea stângă a ecranului. În imaginea de mai jos, dreptunghiul negru este navlistPanel obiect și dreptunghiul roșu este tabPanel obiect.

Împreună cu funcțiile de aspect Shiny, puteți adăuga, de asemenea, CSS inline la fiecare widget de intrare din aplicație.Aplicația Shiny încorporează caracteristici ale tehnologiilor web împreună cu caracteristici și funcții R strălucitoare pentru a îmbogăți aplicația. Utilizați etichete HTML în aplicația Shiny folosind etichete $.

Aspectul dvs. este gata. Este timpul să adăugați widgeturi în aplicație. Shiny oferă diverse elemente de intrare și ieșire pentru interacțiunea utilizatorului. Să discutăm câteva funcții de intrare și ieșire.

Funcții de intrare strălucitoare

Fiecare widget de intrare are o etichetă, Id, alți parametri precum alegere, valoare, selectat, min, max etc.

  • selectInput ()- creați un element HTML derulant.
selectInput ('selectați', h3 ('Selectare casetă'), alegeri = listă ('Alegerea 1' = 1, 'Alegerea 2' = 2, 'Alegerea 3' = 3), selectat = 1)

  • numericInput ()- zona de introducere pentru a tasta un număr sau un text.
dateInput ('num', 'Data input', value = '2014-01-01') numericInput ('num', 'Numeric input', value = 1) textInput ('num', 'Numeric input', value = ' Introduceți textul ... ')

  • butoane radio()- creați butoane radio pentru introducerea utilizatorului.
Butoane radio ('radio', h3 ('Butoane radio'), alegeri = listă ('Alegerea 1' = 1, 'Alegerea 2' = 2, 'Alegerea 3' = 3), selectat = 1)

Funcții de ieșire strălucitoare

Shiny oferă diverse funcții de ieșire care se afișează R ieșiri precum graficele, imaginile, tabelele etc. care afișează corespondența R obiect.

  • plotOutput ()- afișează obiectul R plot.
plotOutput'top_batsman ')
  • tableOutput ()- afișează ieșirea ca tabel.
tableOutput'table_player ')

2. Funcția Server

Server funcția ddefinește logica de pe partea serverului a aplicației Shiny. Aceasta implică crearea de funcții și ieșiri care utilizează intrări pentru a produce diferite tipuri de ieșiri. Fiecare client (browser web) apelează funcția server atunci când încarcă prima dată aplicația Shiny. Fiecare ieșire stochează valoarea returnată din funcțiile de redare.

Aceste funcții captează o expresie R și fac calcule și pre-procesare a expresiei. Utilizați funcția de redare * care corespunde rezultatului pe care îl definiți. Accesăm widget-uri de intrarefolosind introduceți $ [widget-id] . Aceste variabile de intrare sunt valori reactive. Orice variabilă intermediară creată utilizând variabile de intrare trebuie să fie reactivată utilizând reactiv ({}) . Accesați variabilele folosind ().

face * funcțiile efectuează calculul în interiorul funcției server și stochează în variabilele de ieșire. Ieșirea trebuie salvată cu ieșire $ [ieșire nume variabilă] . Fiecare face * funcția acceptă un singur argument, adică o expresie R înconjurată de paranteze, {}.

3. Funcția ShinyApp

shinyApp ()funcția este inimaaplicația care apelează CEAPĂ și Server funcții pentru a crea o aplicație Shiny.

Imaginea de mai jos prezintă conturul aplicației Shiny.

diferența dintre trecerea prin valoare și trecerea prin referință în java

Să trecem la următorul segment din tutorialul R Shiny pentru a crea prima aplicație R Shiny.

Creați un proiect web Shiny

Mergi la Fişier și Creați un Proiect nou în orice director -> Aplicație Web Shiny -> [Numele directorului aplicației Shiny]. Introduceți numele directorului și faceți clic pe O.K .

Fiecare proiect nou de aplicație Shiny va conține un exemplu de histogramă pentru a înțelege elementele de bază ale unei aplicații Shiny. Aplicația histogramă conține un glisor urmat de o histogramă care actualizează ieșirea pentru o modificare a glisorului. Mai jos este ieșirea aplicației de histogramă.

Pentru a rula aplicația Shiny, faceți clic pe Rulați aplicația din colțul din dreapta sus al panoului sursă. Aplicația Shiny afișează un widget glisant care ia numărul de coșuri ca intrare și redă histograma în funcție de intrare.

Acum că ați înțeles structura și cum să rulați o aplicație Shiny. Să trecem mai departe pentru a crea prima noastră aplicație Shiny.

Creați prima aplicație Shiny

Puteți crea un proiect nou sau puteți continua în același director de lucru. În acest tutorial R Shiny, vom crea o aplicație Shiny simplă pentru a afișa statistici IPL. Setul de date utilizat în aplicație poate fi descărcat Aici . Setul de date cuprinde 2 fișiere, livrări.csv conține scor de livrări pentru fiecare minge (peste) batsman, bowler, detalii de alergare și chibrituri.csv fișierul conține detalii despre meci, cum ar fi locația meciului, aruncarea, locația și detaliile jocului Aplicația de mai jos necesită cunoștințe de bază despre dplyr și pentru a înțelege tutorialul de mai jos.

Urmați pașii de mai jos pentru a crea prima aplicație strălucitoare.

Pasul 1 : Creați schița unei aplicații Shiny.

Ștergeți codul existent, cu excepția definițiilor funcției din aplicație . R fişier.

Pasul 2 : Încărcați biblioteci și date.

În acest pas, încărcăm pachetele și datele necesare. Apoi, curățați și transformați datele extrase în formatul necesar. Adăugați codul de mai jos înainte CEAPĂ și Server funcţie.

Cod:

biblioteca (strălucitoare) bibliotecă (tidyverse) # Încărcare set de date --------------------------------------- ---------------- livrări = read.csv ('C: UsersCherukuri_SindhuDownloadsdeliveries.csv', stringsAsFactors = FALSE) matches = read.csv ('C: UsersCherukuri_SindhuDownloadsmatches.csv', stringsAsFactors = FALS) # Set de date de curățare --------------------------------------------- --------- nume (potriviri) [1] = 'match_id' IPL = dplyr :: inner_join (potriviri, livrări)

Explicaţie :

Se încarcă primele 2 linii ordonat și Lucios pachet. Următoarele 2 linii încarcă livrări și potriviri de seturi de date și se stochează în variabilelivrărișichibrituri. Ultimele 2 linii actualizează numele coloaneichibrituriset de date pentru a efectua o îmbinare interioară culivrărimasa. Stocăm rezultatul unirii înIPLvariabil.

Pasul 3 : Creați aspectul aplicației Shiny .

După cum sa discutat anterior, CEAPĂ funcția definește aspectul, widgeturile și obiectele aplicației în aplicația Shiny.Să discutăm la fel în detaliu.

Cod

ceapă<- 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')) ) )))

CEAPĂ funcția conține un headerPanel () sau titlePanel () și urmat de tabsetPanel pentru a defini mai multe file în aplicație. tabPanel () definește obiectele pentru fiecare filă, respectiv. Fiecare tabPanel () constă din titlu și mainPanel (). mainPanel () creează un container de lățime 12 adică fereastră completă și aliniază obiectele de intrare și ieșire în centru.

Explicaţie

Aplicația este formată din 2 file: Sezon și Câștiguri și puncte ale echipei.

Sezon fila constă din selectați Intrare ( ) , butonul de trimitere și un tabel. season_year este folosit pentru a citi intrările din leste de valori. tableOutput () afișează ieșirea tabelului calculată pe funcția serverului.Table player_table este afișat sub butonul care este definit în funcția serverului, care va fi discutat în pasul următor. Câștiguri și puncte ale echipei fila afișează câștigul în echipă și puncte în diagramele de bare respective. plotOutput () afișează ieșirile returnate din randare * funcții. Toate funcțiile de ieșire, de intrare sunt încadrate într-o etichetă div pentru a adăuga un stil inline.

Acum, că suntem familiarizați cu funcția ui, să mergem mai departe cu înțelegerea și utilizarea funcției server în tutorialul nostru R Shiny.

Pasul 4: Adăugați instrucțiunile funcției serverului

Server funcția implică crearea de funcții și outpute care utilizează intrările utilizatorului pentru a produce diverse tipuri de ieșiri.funcția server este explicată pas cu pas mai jos.

matches_year = reactive ({matches%>% filter (season == input $ season_year)}) playoff = reactive ({nth (sort (matches_year () $ match_id, descrescător = TRUE), 4)}) matches_played = reactive ({matches_year ()%>% filter (match_id% group_by (team1)%>% resume (count = n ())}) t2 = reactiv ({matches_played ()%>% group_by (team2)%>% resume (count = n ( ))}) wl = reactiv ({matches_played ()%>% filter (winner! = '')%>% group_by (winner)%>% resume (no_of_wins = n ())}) wl1 = reactive ({matches_played ( )%>% group_by (câștigător)%>% resume (no_of_wins = n ())}) tie = reactiv ({matches_played ()%>% filter (winner == '')%>% select (team1, team2)} ) playertable = reactiv ({data.frame (Echipe = t1 () $ echipa1, jucat = t1 () $ număr + t2 () $ număr, Câștiguri = wl () $ no_of_wins, Puncte = wl () $ no_of_wins * 2) })

Filtrul de cod de mai sus se potrivește în fiecare an înainte de playoff și stochează rezultatul în variabila matches_played.player_tabletabelul conține statistici de meci în funcție de echipă, adică jucate, victorii și puncte. Variabilemeciuri_jucate,player_table,t1,legat, etc sunt toate intermediare valori reactive . Aceste variabile trebuie accesate folosind () așa cum se arată în codul de mai sus.player_tableeste afișat utilizând funcția renderTable. Apoi, creați variabila de ieșire pentru a stoca playertable.

output $ player_table = renderTable ({playertable ()})

Acum permiteți să creați diagrame pentru a arăta victoriile și punctele obținute de fiecare echipă în sezon. Codul de mai jos afișează diagrame cu bare folosind ggplot. renderPlot () preia obiectul ggplot și stochează rezultatul într-o variabilăwins_bar_plot.Codul ggplot este auto-explicativ, implică funcții grafice de bază și funcții de cartografiere pentru a edita legenda, etichetele și graficul.

ieșire $ wins_bar_plot = renderPlot ({ggplot (wl1 () [2: 9,], aes (câștigător, no_of_wins, fill = câștigător)) + geom_bar (stat = 'identitate') + theme_classic () + xlab ('Echipe') + ylab („Număr de câștiguri”) + temă (axis.text.x = element_text (culoare = „alb”), legend.position = „none”, axis.title = element_text (dimensiune = 14), plot.background = element_rect (color = 'white')) + geom_text (aes (x = winner, (no_of_wins + 0.6), label = no_of_wins, size = 7))}) output $ points_bar_plot = renderPlot ({ggplot (playertable (), aes ( Echipe, Puncte, umplere = Echipe)) + geom_bar (stat = 'identitate', dimensiune = 3) + theme_classic () + theme (axis.text.x = element_text (culoare = 'alb'), legend.text = element_text ( mărime = 14), axis.title = element_text (dimensiune = 14)) + geom_text (aes (Echipe, (Puncte + 1), etichetă = Puncte, dimensiune = 7))})

Pasul 5: Rulați aplicația Shiny.

Faceți clic pe Rulați aplicația. Cu o rulare reușită, aplicația Shiny va arăta ca mai jos. Orice eroare sau avertismentÎn legătură cu aplicația, aceasta le va afișa în Consola R.

Tab1 - Sezon

Tab2 - Câștiguri și puncte ale echipei

Să vedem cuma înscenaCont Shinyapps.io pentru a implementa aplicațiile Shiny.

Configurați contul Shinyapps.io

Mergi la Shinyapps.io și conectați-vă cu informațiile dvs., apoi dați un nume de cont unic pentru pagină și salvați-o. După ce ați salvat cu succes, veți vedea o procedură detaliată pentru a implementa aplicații din consola R. Urmați procedura de mai jos pentru a vă configura contul în Rstudio.

Pasul 1. Instalați rsconnect

install.packages ('rsconnect')

Pasul 2. Autorizați contul

rsconnect pachetul trebuie să fie autorizat în contul dvs. utilizând un simbol și un secret. Pentru a face acest lucru, copiați întreaga comandă așa cum se arată mai jos în pagina tabloului de bord din R consolă. După ce ați introdus cu succes comanda în R, vă autorizez acum să implementați aplicații în contul dvs. Shinyapps.io.

rsconnect :: setAccountInfo (nume = 'numele contului', simbol = 'simbol', secret = 'secret')

Pasul 3. Implementați aplicația

Utilizați codul de mai jos pentru a implementa aplicații Shiny.

library (rsconnect) rsconnect :: deployApp ('cale / către / aplicația dvs.')

Odată setat, sunteți gata să implementați aplicațiile dvs. strălucitoare.

structura de bază a programului Java

Acum că ați învățat cum să creați și să rulați aplicații Shiny, implementați aplicația pe care tocmai am creat-o în Shinyapps.io așa cum s-a explicat mai sus sau faceți clic pe publica, care este prezent în colțul din dreapta sus al ferestrei aplicației Shiny.

Spercă acest tutorial R Shiny te-a ajutat să înveți cum să creezi și să rulezi o aplicație Shiny. Distrează-te creând aplicații web interactive și frumoase folosind R Shiny.

Dacă doriți să învățați programarea R și să construiți o carieră plină de culoare în analiza datelor, consultați pagina noastră care vine cu instruire live condusă de instructor și experiență în viața reală a proiectului. Această instruire vă va ajuta să înțelegeți analiza datelor și vă va ajuta să obțineți stăpânirea asupra subiectului.