Teknologian kehittyessä on syntynyt uudempia työkaluja ja kehyksiä reaaliaikaisia tilastoja, karttoja ja kaavioita näyttävien verkkosovellusten rakentamiseksi. Koska nämä toiminnot vaativat paljon prosessointia ja synkronointia, ohjelmointikieliä käytetään palvelimen latausaikojen lyhentämiseen. Tässä R Shiny -oppaassa selitän, kuinka R voidaan hyödyntää parhaalla mahdollisella tavalla dynaamisissa verkkosovelluksissa.
Käsittelemme ja ymmärrämme seuraavat aiheet:
Mikä on R Shiny?
Shiny on R-paketti, jonka avulla käyttäjät voivat rakentaa interaktiivisia verkkosovelluksia. Tämä työkalu luo HTML-vastaavan verkkosovelluksen Shiny-koodista. Integroimme natiivin HTML- ja CSS-koodin R Shiny -toimintoihin, jotta sovelluksesta tulee näkyvää. Shiny yhdistää R: n laskennallisen voiman modernin verkon interaktiivisuuteen.Shiny luo verkkosovelluksia, jotka otetaan käyttöön verkossa palvelimesi tai R Shinyn isännöintipalvelujen avulla.
R Shinyn ominaisuudet:
- Luo helppoja sovelluksia perustyökaluilla tai ilman tietoa verkkotyökaluista
- Integroi Shiny natiivityökalujen avulla joustavuuden ja tuottavuuden parantamiseksi
- Valmiit I / O- ja renderöintitoiminnot
- Sovelluksen sisällön helppo renderointi ilman useita uudelleenlatauksia
- Ominaisuus lisätä laskettuja (tai käsiteltyjä) lähtöjä R-skripteistä
- Lisää reaaliaikaisia raportteja ja visualisointeja.
Se johtaa meidät kysymykseen:
Kuinka Shiny eroaa perinteisistä sovelluksista?
Otetaan esimerkki sääsovelluksesta. Aina kun käyttäjä päivittää / lataa sivun tai muuttaa syötettä, sen tulisi päivittää koko sivu tai osa sivusta JS: n avulla. Tämä lisää kuormaa palvelinpuolelle käsittelyä varten. Kiiltävän avulla käyttäjä voi eristää tai hahmottaa (tai ladata) elementtejä sovelluksessa, mikä vähentää palvelimen kuormitusta. Sivujen selaaminen oli helppoa perinteisissä verkkosovelluksissa, mutta Shiny-sovellusten kanssa se oli vaikeaa. Koodin rakenteella on päärooli koodin ymmärtämisessä ja virheenkorjauksessa. Tämä ominaisuus on ratkaiseva kiiltäville sovelluksille suhteessa muihin sovelluksiin.
Siirrytään seuraavaan aiheeseen R Shiny -oppaassa, asennetaan R Shiny-paketti.
R Shiny: n asentaminen
Shiny: n asentaminen on kuin minkä tahansa muun paketin asentaminen R: ään R-konsoli ja asenna Shiny-paketti suorittamalla seuraava komento.
install.packages ('kiiltävä')
Kun olet asentanut, lataa Shiny-paketti luomaan Shiny-sovelluksia.
kirjasto (kiiltävä)
Ennen kuin siirrymme eteenpäin tässä R-kiiltävässä opetusohjelmassa, katsotaanpa ja ymmärretään kiiltävän sovelluksen rakenne.
Kiiltävän sovelluksen rakenne
Kiiltävä koostuu 3 komponentista:
yksi.Käyttöliittymän toiminto
Käyttöliittymä (UI) -toiminto määrittää sovelluksen asettelun ja ulkoasun. Voit lisätä CSS- ja HTML-tunnisteita sovellukseen, jotta sovelluksesta tulee entistä näkyvämpi. Toiminto sisältää kaikki sovelluksessa näytettävät tulot ja lähdöt. Jokainen sovelluksen sisällä oleva elementti (jako, välilehti tai valikko) määritetään funktioiden avulla. Näihin pääsee käyttämällä yksilöllistä tunnusta, kuten HTML-elementtejä.Opitaan lisää erilaisistasovelluksessa käytetyt toiminnot.
Kiiltävät asettelutoiminnot
headerPanel ()
lisää otsikko sovellukseen. titlePaneeli () määrittää sovelluksen alaotsikon. Katso alla oleva kuva saadaksesi paremman käsityksen headerPanel ja titlePaneeli .
Sivupalkki Asettelu ()
määrittelee pidettävän asettelun sivupalkkiPaneeli ja mainPanel elementtejä. Asettelu jakaa sovelluksen näytön sivupalkkipaneeliksi ja pääpaneeliksi. Esimerkiksi alla olevassa kuvassa punainen suorakaide on mainPanel alue ja mustan suorakaiteen alue pystysuunnassa on sivupalkkiPaneeli alueella.
wellPanel ()
määrittelee säilön, joka pitää sisällään useita objekteja sovelluksen tulo- / lähtöobjekteja samassa ruudukossa.tabsetPanel ()
luo säilön välilehtien pitämiseen. tabPanel () lisää välilehden sovellukseen määrittelemällä välilehden elementit ja komponentit. Alla olevassa kuvassa mustasuorakulmio on tabsetPanel esine ja punainen suorakulmio on tabPanel esine.paneeli ()
tarjoaa sivuvalikon, jossa on linkit samanlaisiin välilehtipaneeleihin kuin tabsetPanel () kuten pystysuora luettelo näytön vasemmalla puolella. Alla olevassa kuvassa musta suorakulmio on navlistPaneeli esine ja punainen suorakulmio on tabPanel esine.
Kiiltävien asettelutoimintojen lisäksi voit myös lisätä sisäisen CSS: n kuhunkin sovelluksen syöttöwidgetiin.Shiny-sovellus sisältää verkkotekniikoiden ominaisuuksia sekä kiiltäviä R-ominaisuuksia ja toimintoja sovelluksen rikastamiseksi. Käytä HTML-tunnisteita Shiny-sovelluksessa tunnisteet $.
Asettelusi on valmis. On aika lisätä widgettejä sovellukseen. Shiny tarjoaa erilaisia käyttäjän syöttö- ja lähtöelementtejä käyttäjän vuorovaikutukseen. Keskustelkaamme muutamista tulo- ja lähtötoiminnoista.
Kiiltävät tulotoiminnot
Jokaisella panoswidgetillä on tunniste, Id, muut parametrit, kuten valinta, arvo, valittu, min, max jne.
selectInput ()
- luoda avattava HTML-elementti.
selectInput ('valitse', h3 ('Valitse ruutu'), valinnat = luettelo ('Valinta 1' = 1, 'Valinta 2' = 2, 'Valinta 3' = 3), valittu = 1)
numericInput ()
- syöttöalue lukunumeron tai tekstin kirjoittamiseksi.
dateInput ('num', 'Date input', arvo = '2014-01-01') numericInput ('num', 'Numeerinen syöttö', arvo = 1) textInput ('num', 'Numeerinen syöttö', value = ' Kirjoita teksti ... ')
menetelmän ylikuormitus ja menetelmän ohittaminen Java-sovelluksessa
radioNapit ()
- luoda valintapainikkeet käyttäjän syötteitä varten.
radiopainikkeet ('radio', h3 ('radiopainikkeet'), valinnat = luettelo ('valinta 1' = 1, 'valinta 2' = 2, 'valinta 3' = 3), valittu = 1)
Kiiltävät lähtötoiminnot
Shiny tarjoaa erilaisia näyttötoimintoja R lähdöt, kuten kaaviot, kuvat, taulukot jne., jotka näyttävät vastaavat R esine.
plotTulos ()
- näyttää R-objektin.
plotOutput'top_batsman ')
-
tableOutput ()
- näyttää tuotoksen taulukkona.
tableOutput'player_table ')
2. Palvelintoiminto
Palvelin toiminto dTehostaa Shiny-sovelluksen palvelinpuolen logiikkaa. Siihen kuuluu sellaisten toimintojen ja lähtöjen luominen, jotka käyttävät panoksia erilaisten tulosten tuottamiseen. Jokainen asiakas (verkkoselain) kutsuu palvelintoimintoa ladatessaan Shiny-sovelluksen ensimmäisen kerran. Jokainen lähtö tallentaa palautusarvon renderöintitoiminnoista.
Nämä toiminnot sieppaavat R-lausekkeen ja tekevät lausekkeelle laskelmat ja esikäsittelyn. Käytä render * -toimintoa, joka vastaa määrittelemääsi lähtöä. Käytämme syöttöwidgettejäkäyttämällä kirjoita $ [widget-id] . Nämä syöttömuuttujat ovat reaktiivisia arvoja. Kaikki välimuuttujat, jotka on luotu syöttömuuttujien avulla, on tehtävä reaktiivisiksi reaktiivinen ({}) . Pääset muuttujiin käyttämällä ().
tehdä * funktiot suorittavat laskennan palvelintoiminnon sisällä ja tallentavat lähtömuuttujiin. Tulos on tallennettava output $ [ulostulomuuttujan nimi] . Jokainen tehdä * funktio vie yhden argumentin, ts. R-lausekkeen, jota ympäröivät aaltosulkeet, {}.
3. ShinyApp-toiminto
shinyApp ()
toiminto onsovellus, joka soittaa SIPULI ja palvelin toiminnot luoda kiiltävä sovellus.
Alla olevassa kuvassa näkyy Shiny-sovelluksen ääriviivat.
Siirrytään seuraavaan segmenttiin R Shiny -opetusohjelmassa ensimmäisen R Shiny -sovelluksen luomiseksi.
Luo kiiltävä verkkoprojekti
Mene Tiedosto ja Luo a Uusi projekti missä tahansa hakemistossa -> Kiiltävä verkkosovellus -> [Kiiltävän sovellushakemiston nimi]. Kirjoita hakemiston nimi ja napsauta OK .
Jokainen uusi Shiny-sovellusprojekti sisältää histogrammiesimerkin kiiltävän sovelluksen perusteiden ymmärtämiseksi. Histogrammasovellus sisältää liukusäätimen, jota seuraa histogrammi, joka päivittää tuloksen liukusäätimen muutosta varten. Alla on histogrammasovelluksen tulos.
Suorita Shiny-sovellus napsauttamalla Suorita sovellus -painike lähdekentän oikeassa yläkulmassa. Kiiltävä sovellus näyttää liukusäätimen, joka ottaa lokeroiden määrän syötteeksi ja tekee histogrammin syötteen mukaan.
Nyt kun olet ymmärtänyt rakenteen ja kuinka käyttää Shiny-sovellusta. Siirrytään luomaan ensimmäinen kiiltävä sovelluksemme.
Luo ensimmäinen Shiny-sovellus
Voit joko luoda uuden projektin tai jatkaa samassa työhakemistossa. Tässä R Shiny -oppaassa luomme yksinkertaisen Shiny-sovelluksen IPL-tilastojen näyttämiseksi. Sovelluksessa käytetty tietojoukko voidaan ladata tässä . Aineisto sisältää 2 tiedostoa, toimitukset.csv sisältää jokaisen pallon (yli) lyöjän, pallomiehen pisteet, juoksutiedot ja ottelut.csv tiedosto sisältää ottelun yksityiskohdat, kuten ottelun sijainnin, heiton, tapahtumapaikan ja pelin yksityiskohdat. Alla oleva sovellus vaatii perustiedot dplyr ja ymmärtää alla oleva opetusohjelma.
c ++ goto-etiketti
Luo ensimmäinen kiiltävä sovelluksesi noudattamalla alla olevia ohjeita.
Vaihe 1 : Luo Shiny-sovelluksen ääriviivat.
Tyhjennä olemassa oleva koodi lukuun ottamatta funktion määritelmiä sovellus . R tiedosto.
Vaihe 2 : Lataa kirjastot ja tiedot.
Tässä vaiheessa lataamme vaaditut paketit ja tiedot. Puhdista ja muunna sitten puretut tiedot vaadittuun muotoon. Lisää alla oleva koodi ennen SIPULI ja palvelin toiminto.
Koodi:
kirjasto (kiiltävä) kirjasto (tidyverse) # Ladataan tietoaineistoa --------------------------------------- ---------------- toimitukset = read.csv ('C: UsersCherukuri_SindhuDownloadsdeliveries.csv', stringsAsFactors = FALSE) ottelut = read.csv ('C: UsersCherukuri_SindhuDownloadsmatches.csv', stringsAsFactors = EPÄTOSI) # Puhdistusaineisto --------------------------------------------- --------- nimet (ottelut) [1] = 'match_id' IPL = dplyr :: inner_join (ottelut, toimitukset)
Selitys :
Ensimmäiset 2 riviä latautuvat siistiä ja Kiiltävä paketti. Seuraavat 2 riviä lataavat tietojoukot toimitukset ja ottelut ja tallentuvat muuttujiintoimitukset
jaOttelut
. Viimeiset 2 riviä päivittävät sarakkeen nimenOttelut
tietojoukko sisäisen liitoksen suorittamiseksitoimitukset
pöytä. Tallennamme liitostuloksenIPL
muuttuja.
Vaihe 3 : Luo Shiny-sovelluksen asettelu .
Kuten aiemmin keskusteltiin, SIPULI -toiminto määrittää sovelluksen ulkonäön, widgetit ja objektit Shiny-sovelluksessa.Keskustellaan samasta yksityiskohtaisesti.
Koodi
sipuli<- 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')) ) )))
SIPULI toiminto sisältää a headerPanel () tai titlePaneeli () ja sen jälkeen tabsetPanel määrittää useita välilehtiä sovelluksessa. tabPanel () määrittää objektit kullekin välilehdelle. Jokainen tabPanel () koostuu otsikosta ja mainPanel (). mainPanel () luo säiliön, jonka leveys on 12 eli koko ikkuna, ja kohdista sisääntulo- ja tulosobjektit keskelle.
Selitys
Sovellus koostuu 2 välilehdestä: Kausi ja Joukkueen voitot ja pisteet.
Kausi välilehti koostuu valitse Tulo ( ) , lähetä-painike ja taulukko. season_year käytetään lukemaan syötettä l: stäon arvoja. tableOutput () näyttää palvelintoiminnolla lasketun taulukon tuotoksen.Taulukko player_table näkyy alla olevan painikkeen alla, joka määritetään palvelintoiminnossa, josta keskustellaan seuraavassa vaiheessa. Joukkueen voitot ja pisteet välilehti näyttää joukkuekohtaisen voiton ja pisteet vastaavissa pylväskaavioissa. plotTulos () näyttää renderistä palautetut lähdöt * toimintoja. Kaikki lähtö-, tulotoiminnot on suljettu div-tagiin lisäämään tyyliä.
Nyt kun olemme perehtyneet ui-toimintoon, jatketaan palvelintoimintojen ymmärtämistä ja käyttöä R Shiny -oppaassa.
Vaihe 4: Lisää palvelinfunktiolausekkeet
palvelin toiminto sisältää toimintojen ja outp: n luomisenuts, jotka käyttävät käyttäjän syötteitä erilaisten tulosten tuottamiseen.palvelintoiminto selitetään vaihe vaiheelta alla.
match_year = reaktiivinen ({match%>% filter (season == input $ season_year)}) pudotuspeli = reaktiivinen ({nth (lajittele (match_year () $ match_id, laskeva = TRUE), 4)}) match_played = reaktiivinen ({match_year ()%>% filter (match_id% group_by (team1)%>% yhteenveto (count = n ())}) t2 = reaktiivinen ({match_played ()%>% group_by (team2)%>% yhteenveto (count = n ( ))}) wl = reaktiivinen ({match_played ()%>% filter (voittaja! = '')%>% group_by (voittaja)%>% yhteenveto (no_of_wins = n ())}) wl1 = reaktiivinen ({match_played ( )%>% group_by (voittaja)%>% yhteenveto (no_of_wins = n ())}) sidottu = reaktiivinen ({match_played ()%>% filter (voittaja == '')%>% select (team1, team2)} ) playertable = reaktiivinen ({data.frame (Joukkueet = t1 () $ team1, Pelatut = t1 () $ count + t2 () $ count, Voitot = wl () $ no_of_wins, Pisteet = wl () $ no_of_wins * 2) })
Yllä olevat koodisuodatinottelut pelattiin ennen pudotuspelejä joka vuosi, ja tallenna tulos match_played-muuttujaan.pelaaja_taulukko
taulukko sisältää joukkuekohtaiset ottelutilastot eli pelatut, voitot ja pisteet. Muuttujatmatch_played
,pelaaja_taulukko
,t1
,sidottu
jne. ovat kaikki välituotteita reaktiiviset arvot . Näihin muuttujiin on päästävä käyttämällä (), kuten yllä olevassa koodissa on esitetty.pelaaja_taulukko
näkyy renderTable-toiminnolla. Luo seuraavaksi ulostulomuuttuja soittolistan tallentamiseksi.
output $ player_table = renderTable ({playertable ()})
Nyt voit luoda pylväskaavioita, jotka näyttävät kunkin joukkueen voitot ja pisteet kaudella. Alla oleva koodi näyttää pylväskaaviot ggplot-sovelluksella. renderPlot () hakee ggplot-objektin ja tallentaa tuloksen muuttujaanwins_bar_plot
.Ggplot-koodi on itsestään selvä, se sisältää grafiikan ja kartoitustoiminnot selitteiden, tarrojen ja juovan muokkaamiseksi.
output $ wins_bar_plot = renderPlot ({ggplot (wl1 () [2: 9,], aes (voittaja, ei_voittoja, täyttö = voittaja)) + geom_bar (stat = 'identiteetti') + theme_classic () + xlab ('Joukkueet') + ylab ('Voittojen määrä') + teema (akseli.teksti.x = elementti_teksti (väri = 'valkoinen'), selite.asento = 'ei mitään', akseli.nimi = elementti_teksti (koko = 14), juoni.tausta = element_rect (color = 'white')) + geom_text (aes (x = voittaja, (no_of_wins + 0.6), label = no_of_wins, size = 7))}) output $ points_bar_plot = renderPlot ({ggplot (pelattavissa (), aes ( Joukkueet, Pisteet, täyttö = Joukkueet)) + geom_bar (stat = 'identiteetti', koko = 3) + theme_classic () + teema (axis.text.x = element_text (color = 'white'), legend.text = element_text ( size = 14), axis.title = element_text (size = 14)) + geom_text (aes (Joukkueet, (Pisteet + 1), etiketti = Pisteet, koko = 7))})
Vaihe 5: Suorita Shiny-sovellus.
Napsauta Suorita sovellus. Onnistuneen ajon aikana Shiny-sovelluksesi näyttää alla olevalta. Mikä tahansa virhe tai varoitusSovellukseen liittyviä se näyttää ne R-konsolissa.
Välilehti1 - Kausi
mitä muoto tekee pythonissa
Välilehti2 - Joukkueen voitot ja pisteet
Katsotaan mitenlavastaaShinyapps.io-tili Shiny-sovellusten käyttöönottoa varten.
Määritä Shinyapps.io-tili
Mene Shinyapps.io ja kirjaudu sisään tietojesi avulla, anna sivulle yksilöllinen tilin nimi ja tallenna se. Kun olet tallentanut onnistuneesti, näet yksityiskohtaisen menettelyn sovellusten asentamiseksi R-konsolista. Määritä tilisi Rstudiossa noudattamalla seuraavia ohjeita.
Vaihe 1. Asenna rsconnect
install.packages ('rsconnect')
Vaihe 2. Valtuuta tili
rliitä Paketin on oltava valtuutettu tilillesi tunnuksen ja salaisuuden avulla. Voit tehdä tämän kopioimalla koko komennon alla olevan hallintapaneelisivun kuvan mukaisesti R konsoli. Kun olet kirjoittanut komennon onnistuneesti R: ssä, valtuutan sinut asentamaan sovelluksia Shinyapps.io-tilillesi.
rsconnect :: setAccountInfo (nimi = 'tilin nimi', tunnus = 'tunnus', salaisuus = 'salaisuus')
Vaihe 3. Ota sovellus käyttöön
Käytä Shiny-sovelluksia alla olevan koodin avulla.
kirjasto (rsconnect) rsconnect :: deployApp ('polku / sovellukseesi / sovellukseesi')
Kun olet määrittänyt, olet valmis ottamaan käyttöön kiiltävät sovelluksesi.
Nyt kun olet oppinut luomaan ja käyttämään Shiny-sovelluksia, ota juuri luomamme sovellus käyttöön Shinyapps.io-ohjelmassa yllä kuvatulla tavalla tai napsauta julkaista, joka on Shiny-sovellusikkunan oikeassa yläkulmassa.
Toivonettä tämä R Shiny -opetusohjelma auttoi sinua oppimaan luomaan ja suorittamaan Shiny-sovelluksen. Pidä hauskaa luoda interaktiivisia ja kauniita verkkosovelluksia käyttämällä R Shiny -ohjelmaa.
Jos haluat oppia R-ohjelmoinnin ja rakentaa värikkään uran Data Analyticsissa, tutustu meidän joka sisältää ohjaajan vetämän live-koulutuksen ja tosielämän projektikokemuksen. Tämä koulutus auttaa sinua ymmärtämään data-analytiikkaa ja hallitsemaan aihetta.