„R Shiny Tutorial“: viskas, ko reikia žinoti



Ši „R Shiny“ mokymo programa suteiks jums išsamių ir išsamių žinių apie „R Shiny“ ir kaip sukurti interaktyvias žiniatinklio programas.

Tobulėjant technologijoms, atsirado naujesnių įrankių ir sistemų, skirtų kurti internetines programas, rodančias realaus laiko statistiką, žemėlapius ir grafikus. Kadangi šioms funkcijoms reikalingas didelis apdorojimas ir sinchronizavimas, norint sumažinti serverio įkėlimo laiką, naudojamos programavimo kalbos. Šioje „R Shiny“ pamokoje paaiškinsiu, kaip geriausiai panaudoti „R“ dinaminėse žiniatinklio programose.

Mes aptarsime ir suprasime šias temas:





Kas yra „R Shiny“?

„Shiny“ yra „R“ paketas, leidžiantis vartotojams kurti interaktyvias žiniatinklio programas. Šis įrankis sukuria HTML lygiavertę žiniatinklio programą iš „Shiny“ kodo. Mes integruojame gimtąjį HTML ir CSS kodą su „R Shiny“ funkcijomis, kad programa būtų pateikiama. „Shiny“ sujungia R skaičiavimo galią su šiuolaikinio interneto interaktyvumu.„Shiny“ sukuria žiniatinklio programas, kurios yra įdiegtos žiniatinklyje naudojant jūsų serverį arba „R Shiny“ prieglobos paslaugas.

„R Shiny“ savybės:

  • Kurkite paprastas programas, žinodami pagrindines žinias apie žiniatinklio įrankius arba jų neišmanydami
  • Norėdami padidinti lankstumą ir produktyvumą, integruokite „Shiny“ su vietiniais žiniatinklio įrankiais
  • Iš anksto sukurtos įvesties / išvesties ir pateikimo funkcijos
  • Lengvas programos turinio atvaizdavimas be daugkartinio įkėlimo
  • Funkcija, skirta pridėti apskaičiuotų (arba apdorotų) išvestinių iš R scenarijų
  • Pridėkite tiesioginių ataskaitų ir vizualizacijų.

Tai priveda mus prie klausimo:



Kuo „Shiny“ skiriasi nuo tradicinių programų?

Leiskite paimti orų programos pavyzdį. Kai vartotojas atnaujina / įkelia puslapį arba pakeičia bet kokį įvestį, jis turėtų atnaujinti visą puslapį ar jo dalį naudodamas JS. Tai padidina apkrovą serverio pusėje apdorojimui. „Shiny“ leidžia vartotojui izoliuoti arba atkurti (arba perkrauti) elementus programoje, o tai sumažina serverio apkrovą. Tradicinėse žiniatinklio programose buvo lengva slinkti puslapiais, bet naudojant „Shiny“ programas - sunku. Kodo struktūra atlieka pagrindinį vaidmenį suprantant ir derinant kodą. Ši funkcija yra labai svarbi blizgančioms programoms, palyginti su kitomis programomis.

Pereikime prie kitos „R Shiny“ mokymo programos temos, įdiegdami „R Shiny“ paketą.

Įdiegti „R Shiny“

„Shiny“ įdiegimas yra panašus į bet kurio kito paketo įdiegimą į „R.“ R pultas ir paleiskite žemiau esančią komandą, kad įdiegtumėte „Shiny“ paketą.



install.packages ('blizgantys')

Įdiekite „R Shiny - R shiny“ mokymo programą - „Edureka“

Įdiegę įkelkite „Shiny“ paketą, kad sukurtumėte „Shiny“ programas.

biblioteka (blizgi)

Prieš eidami toliau šioje „R shiny“ mokymo programoje, pažiūrėkime ir supraskime „Shiny“ programos struktūrą.

„Shiny“ programos struktūra

„Shiny“ sudaro 3 komponentai:

  1. Vartotojo sąsaja
  2. Serveris
  3. „ShinyApp“

vienas.Vartotojo sąsajos funkcija

Vartotojo sąsaja (UI) funkcija apibrėžia programos išdėstymą ir išvaizdą. Programoje galite pridėti CSS ir HTML žymas, kad programa būtų labiau reprezentatyvi. Funkcijoje yra visi įėjimai ir išėjimai, kurie bus rodomi programoje. Kiekvienas programos elementas (skyrius, skirtukas arba meniu) apibrėžiamas naudojant funkcijas. Jie pasiekiami naudojant unikalų ID, pvz., HTML elementus.Sužinokime daugiau apie įvairiusprogramoje naudojamos funkcijos.

Blizgančio išdėstymo funkcijos

  • headerPanel ()pridėkite antraštę prie programos. titlePanel () apibrėžia programos paantraštę. Norėdami geriau suprasti, žiūrėkite žemiau esantį vaizdą headerPanel ir titlePanel .
  • Šoninės juostos išdėstymas ()apibrėžia laikymo išdėstymą šoninė juosta ir mainPanel elementai. Išdėstymas padalija programos ekraną į šoninės juostos skydą ir pagrindinį skydą. Pavyzdžiui, žemiau esančiame paveikslėlyje raudonas stačiakampis yra mainPanel plotas ir vertikaliai juodo stačiakampio plotas yra šoninė juosta srityje.

  • wellPanel ()apibrėžia konteinerį, kuriame yra keli objektų programos įvesties / išvesties objektai tame pačiame tinklelyje.
  • tabsetPanel ()sukuria talpyklę skirtukams laikyti. tabPanel () prideda skirtuką į programą, apibrėždamas skirtuko elementus ir komponentus. Žemiau esančiame paveikslėlyje juodastačiakampis yra „TabletPanel“ objektas, o raudonas stačiakampis yra skirtukasPanelis objektas.
  • „navlistPanel“ ()pateikia šoninį meniu su nuorodomis į skirtingus skirtukų skydelius, panašius į tabsetPanel () kaip vertikalus sąrašas kairėje ekrano pusėje. Žemiau esančiame paveikslėlyje juodas stačiakampis yra NavlistPanelis objektas, o raudonas stačiakampis yra skirtukasPanelis objektas.

Kartu su „Shiny layout“ funkcijomis taip pat galite pridėti vidinį CSS prie kiekvieno programos įvesties valdiklio.„Shiny“ programoje yra žiniatinklio technologijų funkcijos, taip pat blizgios „R“ funkcijos ir funkcijos, praturtinančios programą. Naudokite HTML žymas „Shiny“ programoje naudodami žymos $.

ką daro init python

Jūsų išdėstymas paruoštas. Atėjo laikas pridėti valdiklius į programą. „Shiny“ teikia įvairius vartotojo įvesties ir išvesties elementus, skirtus vartotojo sąveikai. Aptarkime keletą įvesties ir išvesties funkcijų.

Blizgios įvesties funkcijos

Kiekvienas įvesties valdiklis turi etiketę, ID, kitus parametrus, tokius kaip pasirinkimas, vertė, pasirinktas, min., Maks. Ir kt.

  • selectInput ()Sukurti išskleidžiamąjį HTML elementą.
selectInput ('pasirinkti', h3 ('pažymėti langelį'), pasirinkimai = sąrašas ('1 pasirinkimas' = 1, '2 pasirinkimas' = 2, '3 pasirinkimas' = 3), pasirinktas = 1)

  • skaitmeninis įėjimas ()- įvesties sritis įvesti skaičių ar tekstą.
dateInput ('num', 'Date input', value = '2014-01-01') numericInput ('num', 'Skaitmeninis įvestis', value = 1) textInput ('num', 'Skaitmeninis įvestis', value = ' Įveskite tekstą ... ')

  • radijo mygtukai ()Sukurti radijo mygtukus vartotojo įvedimui.
radijo mygtukai ('radijas', h3 ('radijo mygtukai'), pasirinkimai = sąrašas ('1 pasirinkimas' = 1, '2 pasirinkimas' = 2, '3 pasirinkimas' = 3), pasirinktas = 1)

„Shiny Output“ funkcijos

„Shiny“ teikia įvairias rodymo išvesties funkcijas R išvestys, tokios kaip siužetai, vaizdai, lentelės ir kt., kuriose rodomi atitinkami R objektas.

  • plotOutput ()Rodyti R sklypo objektą.
plotOutput'top_batsman ')
  • tableOutput ()- rodo išvestį kaip lentelę.
tableOutput'player_table ')

2. Serverio funkcija

Serveris funkcija dpabrėžia „Shiny“ programos serverio logiką. Tai reiškia, kad reikia kurti funkcijas ir išvestis, kurios naudoja įvestį, kad gautų įvairių rūšių produkciją. Kiekvienas klientas (žiniatinklio naršyklė) iškviečia serverio funkciją, kai pirmą kartą įkelia „Shiny“ programą. Kiekviena išvestis saugo grąžinimo vertę iš pateikimo funkcijų.

Šios funkcijos užfiksuoja R išraišką ir atlieka skaičiavimus bei išankstinį išraiškos apdorojimą. Naudokite „render *“ funkciją, kuri atitinka jūsų apibrėžtą išvestį. Mes pasiekiame įvesties valdikliusnaudojant įveskite $ [widget-id] . Šie įvesties kintamieji yra reaktyviosios vertės. Visi tarpiniai kintamieji, sukurti naudojant įvesties kintamuosius, turi būti reaktyvūs naudojant reaktyvus ({}) . Kintamuosius pasiekite naudodami ().

perteikti * funkcijos atlieka skaičiavimą serverio funkcijos viduje ir saugo išvesties kintamuosiuose. Išvestį reikia išsaugoti naudojant output $ [išvesties kintamojo pavadinimas] . Kiekvienas perteikti * funkcijai reikalingas vienas argumentas, ty R išraiška, apsupta petnešomis, {}.

3. „ShinyApp“ funkcija

„shinyApp“ ()funkcija yra širdiesskambinančią programą Svogūnas ir serverio funkcijos sukurti „Shiny App“.

Žemiau pateiktame paveikslėlyje parodyti „Shiny“ programos kontūrai.

Pereikime prie kito „R Shiny“ pamokos segmento, kad sukurtume pirmąją „R Shiny“ programą.

Sukurkite „Shiny“ interneto projektą

Eiti į Failas ir sukurkite a Naujas projektas bet kuriame kataloge -> Blizgi interneto programa -> [Blizgančios programos katalogo pavadinimas]. Įveskite katalogo pavadinimą ir spustelėkite Gerai .

Kiekviename naujame „Shiny“ programos projekte bus pateiktas histogramos pavyzdys, kad suprastumėte blizgančios programos pagrindus. Histogramos programoje yra slankiklis, po kurio pateikiama histograma, kuri atnaujina išvestį, kad pasikeistų slankiklis. Žemiau pateikiama histogramos programos išvestis.

Norėdami paleisti „Shiny“ programą, spustelėkite Paleisti programą mygtuką viršutiniame dešiniajame šaltinio srities kampe. „Shiny“ programoje rodomas slankusis valdiklis, į kurį įvestas šiukšliadėžių skaičius, o histograma pateikiama pagal įvestį.

kaip sukurti objektų masyvą

Dabar, kai supratote „Shiny“ programos struktūrą ir kaip ją paleisti. Pereikime kurti savo pirmąją „Shiny App“.

Sukurkite pirmąją „Shiny“ programą

Galite sukurti naują projektą arba tęsti tame pačiame darbiniame kataloge. Šioje „R Shiny“ pamokoje sukursime paprastą „Shiny“ programą, kad būtų rodoma IPL statistika. Programoje naudojamą duomenų rinkinį galima atsisiųsti čia . Duomenų rinkinį sudaro 2 bylos, pristatymai.csv pateikiami kiekvieno kamuolio (virš) mušamojo kamuolio, boulingo, pristatymai, rezultatų aprašymai ir degtukai.csv faile yra išsami rungtynių informacija, tokia kaip rungtynių vieta, metimas, vieta ir žaidimo informacija. Toliau pateiktai programai reikalingos pagrindinės žinios dplyr ir suprasti toliau pateiktą pamoką.

Norėdami sukurti pirmąją blizgančią programą, atlikite toliau nurodytus veiksmus.

1 žingsnis : Sukurkite „Shiny“ programos kontūrą.

Išvalykite esamą kodą, išskyrus funkcijų apibrėžimus programa . R failą.

2 žingsnis : Įkelkite bibliotekas ir duomenis.

Šiame žingsnyje mes įkeliame reikiamus paketus ir duomenis. Tada išvalykite ir transformuokite gautus duomenis į reikiamą formatą. Prieš pridėkite žemiau esantį kodą Svogūnas ir serverio funkcija.

Kodas:

biblioteka (blizgi) biblioteka (tidyverse) # Įkeliamas duomenų rinkinys --------------------------------------- --- NETIESA) # Valymo duomenų rinkinys --------------------------------------------- --------- vardai (atitikmenys) [1] = 'match_id' IPL = dplyr :: internal_join (rungtynės, pristatymai)

Paaiškinimas :

Pirmosios 2 eilutės apkraunamos tvarkinga ir Blizgantis pakuotė. Kitose 2 eilutėse įkeliami duomenų rinkinių pristatymai ir atitikmenys bei saugomi kintamiejipristatymaiirdegtukai. Paskutinės 2 eilutės atnaujina stulpelio pavadinimądegtukaiduomenų rinkinį atlikti vidinį sujungimą supristatymaistalo. Sujungimo rezultatą saugomeIPLkintamasis.

3 žingsnis : Sukurkite „Shiny“ programos išdėstymą .

Kaip buvo aptarta anksčiau, Svogūnas funkcija apibrėžia programos išvaizdą, valdiklius ir objektus „Shiny“ programoje.Aptarkime tą patį išsamiai.

Kodas

svogūnas<- 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')) ) )))

Svogūnas funkcijoje yra a headerPanel () arba titlePanel () o paskui „TabletPanel“ norėdami apibrėžti kelis programos skirtukus. tabPanel () atitinkamai apibrėžia kiekvieno skirtuko objektus. Kiekvienas tabPanel () susideda iš pavadinimo ir mainPanel (). mainPanel () sukuria 12 pločio, t. y. viso lango, talpyklą ir sulygiuokite įvesties ir išvesties objektus centre.

Paaiškinimas

Programą sudaro 2 skirtukai: Sezonas ir Komandos laimi ir taškai.

Sezonas skirtuką sudaro pasirinkite Įvestis ( ) , pateikti mygtuką ir lentelę. season_year naudojamas skaityti įvestį iš lyra vertybių. tableOutput () rodo lentelės išvestį, apskaičiuotą pagal serverio funkciją.Lentelės player_table rodomas po mygtuku, kuris yra apibrėžtas serverio funkcijoje, kuri bus aptarta kitame žingsnyje. Komandos laimi ir taškai skirtuke rodomi komandiniai laimėjimai ir taškai atitinkamose juostų diagramose. plotOutput () rodo iš pateikimo grąžintus rezultatus * funkcijos. Visos išvesties, įvesties funkcijos yra įdėtos į „div“ žymą, kad būtų galima įterpti stilių.

Dabar, kai esame susipažinę su vartotojo sąsajos funkcija, pereikime prie „R Shiny“ pamokos suprasdami ir naudodami serverio funkcijas.

4 žingsnis: pridėkite serverio funkcijos teiginius

serverio funkcija apima funkcijų ir outp kūrimąuts, kurie naudoja vartotojo įvestis įvairių rūšių išvestims gaminti.serverio funkcija yra paaiškinta žingsnis po žingsnio žemiau.

rungtynių_metas = reaktyvus ({rungtynių%>% filtras (sezonas == įvestis $ sezono_metas)}) atkrintamasis = reaktyvus ({n-tasis (rūšiuoti (rungtynių_metai () $ rungtynių_id, mažėjantis = TIESA), 4)}) rungtynės_pagal = reaktyvus ({rungtynės_metas ()%>% filtras (match_id% group_by (team1)%>% apibendrina (count = n ())}) t2 = reaktyvus ({match_played ()%>% group_by (team2)%>% apibendrina (count = n ( ))}) wl = reaktyvus ({match_played ()%>% filtras (nugalėtojas! = '')%>% group_by (nugalėtojas)%>% apibendrina (no_of_wins = n ())}) wl1 = reaktyvus ({match_played ( )%>% group_by (nugalėtojas)%>% apibendrinti (no_of_wins = n ())}) susieta = reaktyvi ({match_played ()%>% filter (winner == '')%>% select (team1, team2)} ) playertable = reaktyvus ({data.frame (Komandos = t1 () $ team1, Played = t1 () $ count + t2 () $ count, Wins = wl () $ no_of_wins, Points = wl () $ no_of_wins * 2) })

Aukščiau nurodytos kodo filtro varžybos, kurios kiekvienais metais buvo žaidžiamos prieš atkrintamąsias varžybas, ir išsaugokite rezultatą kintamame „match_played“.player_tablelentelėje pateikiama komandinė rungtynių statistika, t. y. sužaistos, pergalės ir taškai. Kintamiejirungtynės_grojo,player_table,t1,surištiir tt yra visi tarpiniai reaktyviosios vertės . Šiuos kintamuosius reikia pasiekti naudojant (), kaip parodyta aukščiau esančiame kode.player_tablerodomas naudojant „renderTable“ funkciją. Tada sukurkite išvesties kintamąjį, kad galėtumėte laikyti grojamą.

kaip konvertuoti eilutės datą į datą Java
išėjimas $ player_table = renderTable ({playertable ()})

Dabar leidžia kurti juostų diagramas, kad būtų parodyti kiekvienos komandos laimėjimai ir taškai sezone. Žemiau pateiktame kode pateikiamos juostinės diagramos, naudojant „ggplot“. „renderPlot“ () atneša ggplot objektą ir išsaugo rezultatą kintamajamewins_bar_plot. „Ggplot“ kodas yra savaime suprantamas, jis apima pagrindines grafikos ir atvaizdavimo funkcijas, skirtas redaguoti legendas, etiketes ir siužetą.

išvestis $ wins_bar_plot = renderPlot ({ggplot (wl1 () [2: 9,], aes (nugalėtojas, be_galimų, užpildymas = nugalėtojas)) + geom_bar (stat = 'tapatybė') + theme_classic () + xlab ('Komandos') + ylab ('Laimėjimų skaičius') + tema (ašis.tekstas.x = elemento_tekstas (spalva = 'balta'), legenda.pozicija = 'nėra', ašis.pavadinimas = elemento_tekstas (dydis = 14), sklypas.atgalinis = element_rect (color = 'white')) + geom_text (aes (x = nugalėtojas, (no_of_wins + 0.6), label = no_of_wins, size = 7))}) output $ points_bar_plot = renderPlot ({ggplot (playertable (), aes ( Komandos, taškai, užpildymas = komandos)) + geom_bar (stat = 'identitetas', dydis = 3) + theme_classic () + tema (axis.text.x = element_text (color = 'white'), legend.text = element_text ( dydis = 14), axis.title = element_text (size = 14)) + geom_text (aes (komandos, (taškai + 1), etiketė = taškai, dydis = 7))})

5 veiksmas: paleiskite „Shiny“ programą.

Spustelėkite Vykdyti programą. Sėkmingai paleidus, jūsų „Shiny“ programa atrodys taip, kaip nurodyta toliau. Bet kokia klaida ar įspėjimasSu programa susijusios, jos bus rodomos „R Console“.

1 skirtukas - sezonas

Tab2 - Komandos laimėjimai ir taškai

Pažiūrėkime, kaipnustatyti„Shinyapps.io“ paskyra, kad galėtumėte įdiegti „Shiny“ programas.

Sukurkite „Shinyapps.io“ paskyrą

Eiti į Shinyapps.io ir prisijunkite naudodami savo informaciją, tada nurodykite unikalų puslapio pavadinimą ir išsaugokite jį. Sėkmingai išsaugoję pamatysite išsamią programų diegimo iš „R Console“ procedūrą. Norėdami konfigūruoti savo paskyrą „Rstudio“, atlikite toliau nurodytą procedūrą.

1 žingsnis. Įdiekite „rsconnect“

install.packages ('rsconnect')

2 žingsnis. Patvirtinti sąskaitą

rjungtis paketas turi būti autorizuotas jūsų paskyroje naudojant žetoną ir slaptą. Norėdami tai padaryti, nukopijuokite visą komandą, kaip parodyta žemiau informacijos suvestinės puslapyje R konsolė. Sėkmingai įvedę komandą R, aš įgaliojau jus įdiegti programas į savo „Shinyapps.io“ paskyrą.

rsconnect :: setAccountInfo (vardas = 'paskyros pavadinimas', žetonas = 'žetonas', paslaptis = 'paslaptis')

3 žingsnis. Įdiekite programą

Norėdami įdiegti „Shiny“ programas, naudokite žemiau pateiktą kodą.

biblioteka (rsconnect) rsconnect :: deployApp ('kelias / į / jūsų / programą')

Kai nustatysite, būsite pasirengę įdiegti blizgančias programas.

Sužinoję, kaip kurti ir paleisti „Shiny“ programas, įdiekite ką tik sukurtą programą į „Shinyapps.io“, kaip paaiškinta aukščiau, arba spustelėkite paskelbti, kuri yra viršutiniame dešiniajame „Shiny“ programos lango kampe.

Aš tikiuosikad ši „R Shiny“ mokymo programa padėjo sužinoti, kaip sukurti ir paleisti „Shiny“ programą. Smagiai kurkite interaktyvias ir gražias žiniatinklio programas naudodami „R Shiny“.

Jei norite išmokti „R“ programavimo ir kurti spalvingą karjerą „Data Analytics“, patikrinkite mūsų kuris ateina su instruktorių vedamomis tiesioginėmis treniruotėmis ir realių projektų patirtimi. Šie mokymai padės suprasti duomenų analizę ir padės įsisavinti dalyką.