R Spīdīga apmācība: Viss, kas jums jāzina



Šī R Shiny apmācība sniegs jums detalizētas un visaptverošas zināšanas par R Shiny un par to, kā izveidot interaktīvas tīmekļa lietojumprogrammas.

Attīstoties tehnoloģijai, ir parādījušies jaunāki rīki un sistēmas tīmekļa lietojumprogrammu veidošanai, kas parāda reāllaika statistiku, kartes un grafikus. Tā kā šīm funkcijām nepieciešama augsta apstrāde un sinhronizācija, servera ielādes laika samazināšanai tiek izmantotas programmēšanas valodas. Šajā R Shiny apmācībā es paskaidrošu, kā vislabāk izmantot R dinamiskās tīmekļa lietojumprogrammās.

Mēs aplūkosim un sapratīsim šādas tēmas:





Kas ir R Shiny?

Shiny ir R pakete, kas lietotājiem ļauj veidot interaktīvas tīmekļa lietotnes. Šis rīks izveido HTML ekvivalentu tīmekļa lietotni no Shiny koda. Mēs integrējam vietējo HTML un CSS kodu ar funkcijām R Shiny, lai padarītu lietojumprogrammu reprezentablu. Shiny apvieno R skaitļošanas jaudu ar mūsdienu tīmekļa interaktivitāti.Shiny izveido tīmekļa lietotnes, kas tiek izvietotas tīmeklī, izmantojot jūsu serveri vai R Shiny mitināšanas pakalpojumus.

R Shiny iezīmes:

  • Izveidojiet vienkāršas lietojumprogrammas ar pamatzināšanām vai vispār nezināt tīmekļa rīkus
  • Integrējiet spīdīgo ar vietējiem tīmekļa rīkiem, lai uzlabotu elastību un produktivitāti
  • Iepriekš izveidotas I / O un renderēšanas funkcijas
  • Ērta lietojumprogrammas satura renderēšana bez vairākām atkārtotām ielādēm
  • Funkcija, lai pievienotu aprēķinātus (vai apstrādātus) rezultātus no R skriptiem
  • Pievienojiet tiešraides un vizualizācijas.

Tas mūs noved pie jautājuma:



Ar ko Shiny atšķiras no tradicionālajiem lietojumiem?

Ļaujiet mums izmantot laika apstākļu lietojumprogrammas piemēru. Ikreiz, kad lietotājs atsvaidzina / ielādē lapu vai maina jebkuru ievadi, tam jāatjaunina visa lapa vai lapas daļa, izmantojot JS. Tas palielina slodzi servera pusē apstrādei. Spīdīgs ļauj lietotājam lietotnē izolēt vai renderēt (vai pārlādēt) elementus, kas samazina servera slodzi. Lappušu pārlūkošana tradicionālajās tīmekļa lietojumprogrammās bija vienkārša, bet ar Shiny lietotnēm bija sarežģīta. Koda struktūrai ir galvenā loma koda izpratnē un atkļūdošanā. Šī funkcija ir ļoti svarīga spīdīgām lietotnēm, salīdzinot ar citām lietojumprogrammām.

Pārejam uz nākamo tēmu R Shiny apmācībā, instalējot R Shiny pakotni.

R Shiny instalēšana

Spīdīgā instalēšana ir tāda pati kā jebkura cita pakotnes instalēšana R R konsole un palaidiet zemāk esošo komandu, lai instalētu Shiny pakotni.



install.packages ('spīdīgs')

Instalējiet R Shiny - R spīdīgu apmācību - Edureka

Kad esat instalējis, ielādējiet Shiny pakotni, lai izveidotu Shiny lietotnes.

bibliotēka (spīdīga)

Pirms mēs virzāmies tālāk šajā R spīdīgajā apmācībā, apskatīsim un sapratīsim Shiny lietojumprogrammas struktūru.

Spīdīgas lietotnes struktūra

Spīdīgs sastāv no 3 komponentiem:

  1. Lietotāja interfeiss
  2. Serveris
  3. ShinyApp

viens.Lietotāja saskarnes funkcija

Lietotāja interfeiss (UI) funkcija nosaka lietotnes izkārtojumu un izskatu. Lai padarītu lietotni reprezentablāku, lietotnē varat pievienot CSS un HTML tagus. Funkcija satur visas ieejas un izejas, kas tiks parādītas lietotnē. Katrs lietotnes elements (sadaļa, cilne vai izvēlne) tiek definēts, izmantojot funkcijas. Tiem piekļūst, izmantojot unikālu ID, piemēram, HTML elementus.Mācīsimies tālāk par dažādiemlietotnē izmantotās funkcijas.

Spīdīgas izkārtojuma funkcijas

  • headerPanel ()pievienojiet lietotnei virsrakstu. titlePanel () definē lietotnes apakšpozīcijas. Lai labāk izprastu, skatiet zemāk redzamo attēlu headerPanel un titlePanel .
  • Sānjoslas izkārtojums ()nosaka izkārtojumu, kas jātur sānjoslaPanelis un mainPanel elementi. Izkārtojums sadala lietotnes ekrānu sānjoslas panelī un galvenajā panelī. Piemēram, zemāk redzamajā attēlā sarkanais taisnstūris ir mainPanel laukums un melnā taisnstūra laukums vertikāli ir sānjoslaPanelis apgabalā.

  • wellPanel ()definē konteineru, kurā vienā režģī atrodas vairāki objektu lietotnes ievades / izvades objekti.
  • tabsetPanel ()izveido konteineru ciļņu turēšanai. tabPanel () pievieno cilni lietotnē, definējot cilnes elementus un komponentus. Zemāk redzamajā attēlā melnstaisnstūris ir tabsetPanel objekts un sarkanais taisnstūris ir tabPanel objekts.
  • NavlistPanel ()nodrošina sānu izvēlni ar saitēm uz dažādiem cilnes paneļiem, kas līdzīgi tabsetPanel () tāpat kā vertikālais saraksts ekrāna kreisajā pusē. Zemāk redzamajā attēlā melnais taisnstūris ir NavlistPanel objekts un sarkanais taisnstūris ir tabPanel objekts.

Līdztekus Shiny izkārtojuma funkcijām katram lietotnes ievades logrīkam varat pievienot arī iekšējo CSS.Spīdīgajā lietotnē ir iekļautas tīmekļa tehnoloģiju funkcijas, kā arī spīdīgas R funkcijas un funkcijas, lai bagātinātu lietotni. Izmantojiet HTML tagus lietotnē Shiny, izmantojot tagus $.

Jūsu izkārtojums ir gatavs. Ir pienācis laiks lietotnē pievienot logrīkus. Shiny nodrošina dažādus lietotāja ievades un izvades elementus mijiedarbībai ar lietotāju. Apspriedīsim dažas ievades un izvades funkcijas.

Spīdīgas ievades funkcijas

Katram ievades logrīkam ir etiķete, Id, citi parametri, piemēram, izvēle, vērtība, atlasītais, min, max utt.

java kā izmantot
  • selectInput ()Izveidot nolaižamo HTML elementu.
selectInput ('select', h3 ('Select box'), options = list ('Choice 1' = 1, 'Choice 2' = 2, 'Choice 3' = 3), selected = 1)

  • ciparu ievade ()- ievades apgabals, lai ierakstītu skaitli vai tekstu.
dateInput ('num', 'Date input', value = '2014-01-01') numericInput ('num', 'Skaitliskā ievade', value = 1) textInput ('num', 'Skaitliskā ievade', value = ' Ievadiet tekstu ... ')

  • radioPogas ()Izveidot radiopogas lietotāja ievadam.
radioButtons ('radio', h3 ('Radio pogas'), izvēles = saraksts ('1. izvēle' = 1, '2. izvēle' = 2, '3. izvēle' = 3), izvēlēta = 1)

Spīdīgas izvades funkcijas

Spīdīgais nodrošina dažādas izvades funkcijas, kas tiek parādītas R izejas, piemēram, diagrammas, attēli, tabulas utt., kas parāda atbilstošo R objekts.

  • plotOutput ()- attēlot R gabala objektu.
plotOutput'top_batsman ')
  • tableOutput ()- parāda izvadi kā tabulu.
tableOutput'player_table ')

2. Servera funkcija

Serveris funkcija duzlabo Shiny lietotnes servera puses loģiku. Tas ietver tādu funkciju un izvadu izveidi, kurās tiek izmantoti ievadi, lai iegūtu dažādu veidu produkciju. Katrs klients (tīmekļa pārlūks) izsauc servera funkciju, kad tas pirmo reizi ielādē lietotni Shiny. Katra izeja saglabā atgriešanās vērtību no renderēšanas funkcijām.

Šīs funkcijas uztver R izteiksmi un veic izteiksmē aprēķinus un iepriekšēju apstrādi. Izmantojiet renderēšanas * funkciju, kas atbilst jūsu definētajai izejai. Mēs piekļūstam ievades logrīkiemizmantojot ievade $ [widget-id] . Šie ievades mainīgie ir reaktīvās vērtības. Visi starpposma mainīgie, kas izveidoti, izmantojot ievades mainīgos, ir jāpadara reaģējoši, izmantojot reaktīvs ({}) . Piekļūstiet mainīgajiem, izmantojot ().

renderēt * funkcijas veic aprēķinu servera funkcijas iekšpusē un saglabā izejas mainīgos. Izeja jāsaglabā ar izeja $ [izvades mainīgā nosaukums] . Katrs renderēt * funkcija aizņem vienu argumentu, ti, R izteiksmi, kuru ieskauj lencēm, {}.

3. Funkcija ShinyApp

shinyApp ()funkcija ir sirdslietotne, kas zvana Sīpols un serveris funkcijas, lai izveidotu spīdīgu lietotni.

Zemāk redzamajā attēlā ir redzama lietotnes Shiny kontūra.

Pārejam uz nākamo segmentu R Shiny apmācībā, lai izveidotu pirmo R Shiny lietotni.

Izveidojiet Shiny tīmekļa projektu

Iet uz Fails un Izveidot a Jauns projekts jebkurā direktorijā -> Spīdīga tīmekļa lietojumprogramma -> [Shiny lietojumprogrammu direktorija nosaukums]. Ievadiet direktorijas nosaukumu un noklikšķiniet labi .

Katrā jaunajā lietotnē Shiny app būs histogrammas piemērs, lai izprastu spīdīgās lietotnes pamatus. Histogrammas lietotnē ir slīdnis, kam seko histogramma, kas atjaunina izvadi, lai mainītu slīdni. Zemāk ir histogrammas lietotnes izeja.

Lai palaistu lietotni Shiny, noklikšķiniet uz Palaist lietotni poga avota rūts augšējā labajā stūrī. Spīdošajā lietotnē tiek parādīts slīdņa logrīks, kas kā ievadi ņem atkritumu tvertņu skaitu un atveido histogrammu atbilstoši ievadam.

Tagad, kad esat sapratis struktūru un kā palaist lietotni Shiny. Turpināsim izveidot savu pirmo lietotni Shiny.

Izveidojiet pirmo lietotni Shiny

Varat izveidot jaunu projektu vai turpināt tajā pašā darba direktorijā. Šajā R Shiny apmācībā mēs izveidosim vienkāršu Shiny lietotni, lai parādītu IPL statistiku. Lietotnē izmantoto datu kopu var lejupielādēt šeit . Datu kopa sastāv no 2 failiem, piegādes.csv satur rezultātu piegādes par katru bumbu (virs) batsman, bouleris, skrējiena detaļas un spēles.csv fails satur detalizētu informāciju par spēli, piemēram, par spēles vietu, metienu, norises vietu un spēles informāciju. Tālāk redzamajai lietotnei ir nepieciešamas pamatzināšanas dplyr un lai saprastu tālāk sniegto apmācību.

Veiciet tālāk norādītās darbības, lai izveidotu savu pirmo spīdīgo lietotni.

1. solis : Izveidojiet Shiny lietotnes aprakstu.

Notīriet esošo kodu, izņemot funkciju definīcijas lietotne . R failu.

2. solis : Ielādēt bibliotēkas un datus.

Šajā solī mēs ielādējam nepieciešamās paketes un datus. Pēc tam notīriet un pārveidojiet iegūtos datus vajadzīgajā formātā. Pirms pievienojiet zemāk esošo kodu Sīpols un serveris funkciju.

Kods:

bibliotēka (spīdīga) bibliotēka (kārtība) # Notiek datu kopas ielāde --------------------------------------- ---------------- piegādes = read.csv ('C: UsersCherukuri_SindhuDownloadsdeliveries.csv', stringsAsFactors = FALSE) atbilst = read.csv ('C: UsersCherukuri_SindhuDownloadsmatches.csv', stringsAsFactors = FALSE) # Tīrīšanas datu kopa --------------------------------------------- --------- nosaukumi (spēles) [1] = 'match_id' IPL = dplyr :: inner_join (sērkociņi, piegādes)

Paskaidrojums :

Pirmās 2 rindas tiek ielādētas kārtība un Spīdīgs iepakojums. Nākamās 2 rindas ielādē datu kopu piegādes un atbilstības un glabā mainīgospiegādesunsērkociņi. Pēdējās 2 rindas atjaunina kolonnas nosaukumusērkociņidatu kopa, lai veiktu iekšēju savienojumu arpiegādestabula. Pievienošanās rezultātu mēs saglabājamIPLmainīgais.

3. solis : Izveidojiet lietotnes Shiny izkārtojumu .

Kā jau tika apspriests iepriekš, Sīpols funkcija nosaka lietotnes izskatu, logrīkus un objektus lietotnē Shiny.Apspriedīsim to pašu sīkāk.

Kods

sīpols<- 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 Sīpols funkcija satur a headerPanel () vai titlePanel () un seko tabsetPanel lai lietotnē definētu vairākas cilnes. tabPanel () attiecīgi nosaka katras cilnes objektus. Katrs tabPanel () sastāv no nosaukuma un mainPanel (). mainPanel () izveido konteineru ar platumu 12, ti, pilnu logu, un centrā izlīdziniet ievades un izvades objektus.

Paskaidrojums

Lietotne sastāv no 2 cilnēm: Sezona un Komandas uzvaras un punkti.

Sezona cilne sastāv no selectInput ( ) , iesniegšanas poga un tabula. Sezona_gads tiek izmantots, lai nolasītu ievadi no lir vērtībām. tableOutput () parāda tabulas izvadi, kas aprēķināta pēc servera funkcijas.Tabula player_table tiek parādīta zem pogas, kas definēta servera funkcijā, kas tiks apspriesta nākamajā solī. Komandas uzvaras un punkti cilnē tiek parādīta komandas uzvara un punkti attiecīgajās joslu diagrammās. plotOutput () parāda rezultātus, kas atgriezti no renderēšanas * funkcijas. Visas izvades, ievades funkcijas ir ievietotas div tagā, lai pievienotu iekšējo stilu.

Tagad, kad mēs esam iepazinušies ar lietotāja funkciju, turpināsim izprast un izmantot servera funkcijas mūsu R Shiny apmācībā.

4. darbība: pievienojiet servera funkcijas paziņojumus

The serveris funkcija ietver funkciju un outp izveidošanuuts, kas izmanto lietotāja ievadi dažādu veidu izejas iegūšanai. Theservera funkcija ir paskaidrota soli pa solim zemāk.

spēles_gads = reaktīvs ({spēles%>% filtrs (sezona == ievade $ sezonas_gads)}) izslēgšanas spēle = reaktīva ({n-tā (kārtot (sērkociņu_gads () $ sērkociņu_samazināšanās = PATIESA), 4)}) spēles_spēlēts = reaktīvs ({sērkociņi ()%>% filtrs (match_id% group_by (team1)%>% apkopo (skaits = n ())}) t2 = reaktīvs ({match_played ()%>% group_by (team2)%>% apkopo (count = n ( ))}) wl = reaktīvs ({match_played ()%>% filtrs (uzvarētājs! = '')%>% group_by (uzvarētājs)%>% apkopo (no_of_wins = n ())}) wl1 = reaktīvs ({match_played ( )%>% group_by (uzvarētājs)%>% apkopo (no_of_wins = n ())}) sasiets = reaktīvs ({spēles_spēlēts ()%>% filtrs (uzvarētājs == '')%>% atlasīt (team1, team2)} ) playertable = reaktīvs ({data.frame (Komandas = t1 () $ team1, Played = t1 () $ count + t2 () $ count, Wins = wl () $ no_of_wins, Points = wl () $ no_of_wins * 2) })

Iepriekš minētās kodu filtru spēles katru gadu tika spēlētas pirms izslēgšanas spēlēm, un rezultāts tika saglabāts mainīgajā match_played.player_tabletabulā ir norādīta komandas statistika par spēlēm, ti, spēlētās spēles, uzvaras un punkti. Mainīgiespēles_spēlēts,player_table,t1,sasietsutt. ir visi starpprodukti reaktīvās vērtības . Šiem mainīgajiem ir jāpiekļūst, izmantojot (), kā parādīts iepriekš redzamajā kodā.player_tabletiek parādīts, izmantojot renderTable funkciju. Pēc tam izveidojiet izejas mainīgo, lai saglabātu atskaņošanas disku.

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

Tagad ļauj izveidot joslu diagrammas, lai parādītu katras komandas uzvaras un punktus sezonā. Zemāk redzamais kods parāda joslu diagrammas, izmantojot ggplot. renderPlot () ienes objektu ggplot un rezultātu saglabā mainīgajāwins_bar_plot.Ggplot kods ir pats par sevi saprotams, tas ietver grafikas un kartēšanas funkcijas, lai rediģētu leģendas, etiķetes un sižetu.

izeja $ wins_bar_plot = renderPlot ({ggplot (wl1 () [2: 9,], aes (uzvarētājs, no_uzvaramiem, aizpildīt = uzvarētājs)) + geom_bar (stat = 'identitāte') + theme_classic () + xlab ('Komandas') + ylab ('Uzvaru skaits') + tēma (ass.text.x = element_text (color = 'white'), leģenda.position = 'none', ass.title = element_text (size = 14), plot.background = element_rect (color = 'white')) + geom_text (aes (x = uzvarētājs, (no_w_wins + 0.6), label = no_of_wins, size = 7))}) output $ points_bar_plot = renderPlot ({ggplot (playertable (), aes ( Komandas, punkti, aizpildīšana = komandas)) + geom_bar (stat = 'identitāte', izmērs = 3) + theme_classic () + theme (ass.text.x = element_text (color = 'balts')), legend.text = element_text ( izmērs = 14), ass.title = elements_teksts (izmērs = 14)) + ģeom_teksts (aes (komandas, (punkti + 1), iezīme = punkti, izmērs = 7))})

5. darbība: palaidiet lietotni Shiny.

Noklikšķiniet uz Run App. Veiksmīgi darbojoties, jūsu Spīdīgā lietotne izskatīsies šādi. Jebkura kļūda vai brīdinājumsKas ir saistīti ar lietotni, tā tos parādīs R konsolē.

1. cilne - sezona

Tab2 - Komandas uzvaras un punkti

Apskatīsim, kāuzstādītShinyapps.io kontu, lai izvietotu savas Shiny lietotnes.

Izveidojiet kontu Shinyapps.io

Iet uz Shinyapps.io un pierakstieties, izmantojot savu informāciju, pēc tam norādiet unikālu lapas nosaukumu un saglabājiet to. Pēc veiksmīgas saglabāšanas jūs redzēsiet detalizētu procedūru, kā izvietot lietotnes no R Console. Lai konfigurētu kontu Rstudio, rīkojieties šādi.

1. solis. Instalējiet rsconnect

install.packages ('rsconnect')

2. solis. Autorizēt kontu

The r savienot paketei jābūt autorizētai jūsu kontā, izmantojot marķieri un noslēpumu. Lai to izdarītu, nokopējiet visu komandu, kā parādīts zemāk informācijas panelī R konsole. Kad esat veiksmīgi ievadījis komandu R, es tagad pilnvaroju jūs izvietot lietojumprogrammas savā Shinyapps.io kontā.

rsconnect :: setAccountInfo (nosaukums = 'konta nosaukums', marķieris = 'marķieris', noslēpums = 'noslēpums')

3. solis. Izvietot lietotni

Izmantojiet zemāk redzamo kodu, lai izvietotu Shiny lietotnes.

bibliotēka (rsconnect) rsconnect :: deployApp ('ceļš / uz / jūsu / lietotni')

Kad tas ir iestatīts, esat gatavs izvietot savas spīdošās lietotnes.

Tagad, kad esat iemācījies izveidot un palaist Shiny lietotnes, izvietojiet tikko izveidoto lietotni vietnē Shinyapps.io, kā paskaidrots iepriekš, vai noklikšķiniet uz publicēt, kas atrodas Shiny lietotnes loga augšējā labajā stūrī.

ES ceruka šī apmācība R Shiny palīdzēja jums uzzināt, kā izveidot un palaist lietotni Shiny. Izklaidējieties, veidojot interaktīvas un skaistas tīmekļa lietotnes, izmantojot R Shiny.

Ja vēlaties apgūt R programmēšanu un veidot krāsainu karjeru datu analīzē, apskatiet mūsu kas nāk ar instruktoru vadītu tiešraides apmācību un reālās dzīves projektu pieredzi. Šīs apmācības palīdzēs izprast datu analīzi un palīdzēs apgūt priekšmetu.