R Shiny Tutorial: Vse, kar morate vedeti



Ta vadnica R Shiny vam bo zagotovila podrobno in celovito znanje o R Shiny in kako ustvariti interaktivne spletne aplikacije.

Z razvojem tehnologije so se pojavila novejša orodja in okviri za izdelavo spletnih aplikacij, ki v realnem času prikazujejo statistiko, zemljevide in grafe. Ker te funkcije zahtevajo veliko obdelavo in sinhronizacijo, se programski jeziki uporabljajo za skrajšanje časa nalaganja strežnika. V tej vadnici R Shiny bom razložil, kako najbolje uporabiti R na dinamičnih spletnih aplikacijah.

Obravnavali in razumeli bomo naslednje teme:





Kaj je R Shiny?

Shiny je paket R, ki uporabnikom omogoča izdelavo interaktivnih spletnih aplikacij. To orodje ustvari HTML enakovredno spletno aplikacijo iz kode Shiny. Domačo kodo HTML in CSS integriramo s funkcijami R Shiny, da je aplikacija predstavljiva. Shiny združuje računsko moč R z interaktivnostjo sodobnega spleta.Shiny ustvarja spletne aplikacije, ki so razporejene v spletu s pomočjo vašega strežnika ali storitev gostovanja R Shiny.

Značilnosti R Shiny:

  • Ustvarite enostavne aplikacije z osnovnim ali brez znanja spletnih orodij
  • Integrirajte Shiny z domačimi spletnimi orodji za večjo prilagodljivost in produktivnost
  • Vnaprej vgrajene funkcije V / I in upodabljanja
  • Preprosto upodabljanje vsebine aplikacije brez večkratnega ponovnega nalaganja
  • Funkcija za dodajanje izračunanih (ali obdelanih) izhodov iz R skriptov
  • Dodajte poročila v živo in vizualizacije.

To nas pripelje do vprašanja:



V čem se Shiny razlikuje od tradicionalnih aplikacij?

Oglejmo si primer vremenske aplikacije. Kadar uporabnik osveži / naloži stran ali spremeni kakršen koli vnos, mora posodobiti celotno stran ali del strani s pomočjo JS. To na strežnik doda obremenitev za obdelavo. Shiny omogoča uporabniku, da v aplikaciji izolira ali upodobi (ali ponovno naloži) elemente, kar zmanjša obremenitev strežnika. Premikanje po straneh je bilo v tradicionalnih spletnih aplikacijah enostavno, pri Shiny aplikacijah pa težko. Struktura kode igra glavno vlogo pri razumevanju in odpravljanju napak kode. Ta funkcija je ključnega pomena za sijoče aplikacije glede na druge aplikacije.

Pojdimo na naslednjo temo v vadnici R Shiny, namestitev paketa R Shiny.

Namestitev R Shiny

Namestitev Shiny je kot namestitev katerega koli drugega paketa v R. Pojdi na R konzola in zaženite spodnji ukaz, da namestite paket Shiny.



install.packages ('sijoča')

Namestite R Shiny - R sijoča ​​vadnica - Edureka

Ko namestite, naložite paket Shiny, da ustvarite Shiny apps.

knjižnica (sijoča)

Preden se premaknemo v tej vadnici R Shiny, si oglejmo in razumemo strukturo aplikacije Shiny.

Struktura sijoče aplikacije

Shiny je sestavljen iz 3 komponent:

razlika med podiplomskim in magistrskim študentom
  1. Uporabniški vmesnik
  2. Strežnik
  3. ShinyApp

eno.Funkcija uporabniškega vmesnika

Uporabniški vmesnik Funkcija (UI) določa postavitev in videz aplikacije. V aplikacijo lahko dodate oznake CSS in HTML, da bo aplikacija bolj predstavljiva. Funkcija vsebuje vse vhode in izhode, ki se prikažejo v aplikaciji. Vsak element (razdelek ali zavihek ali meni) v aplikaciji je definiran s pomočjo funkcij. Do njih se dostopa z uporabo edinstvenega ID-ja, kot so elementi HTML.Učimo se naprej o različnihfunkcije, ki se uporabljajo v aplikaciji.

Funkcije bleščeče postavitve

  • headerPanel ()dodajte naslov v aplikacijo. titlePanel () definira podnaslov aplikacije. Za boljše razumevanje glejte spodnjo sliko headerPanel in titlePanel .
  • Stranska vrsticaRazporeditev ()definira postavitev za zadrževanje stranska vrsticaPanel in mainPanel elementi. Postavitev zaslon aplikacije deli na stransko in glavno ploščo. Na spodnji sliki je na primer rdeči pravokotnik mainPanel območje črnega pravokotnika pa je navpično stranska vrsticaPanel območje.

  • wellPanel ()definira vsebnik, ki vsebuje več predmetov vhodno / izhodnih predmetov aplikacije v isti mreži.
  • tabsetPanel ()ustvari vsebnik za zavihke. tabPanel () doda jeziček v aplikacijo z določitvijo elementov in komponent zavihka. Na spodnji sliki črnapravokotnik je tabsetPanel predmet in rdeči pravokotnik je tabPanel predmet.
  • navlistPanel ()ponuja stranski meni s povezavami na različne plošče zavihkov, podobne tabsetPanel () kot navpični seznam na levi strani zaslona. Na spodnji sliki je črni pravokotnik navlistPanel predmet in rdeči pravokotnik je tabPanel predmet.

Skupaj s funkcijami bleščeče postavitve lahko vsakemu vhodnemu pripomočku v aplikaciji dodate tudi vstavljeni CSS.Aplikacija Shiny vključuje funkcije spletnih tehnologij in sijoče funkcije R ter funkcije za obogatitev aplikacije. Uporabite oznake HTML v aplikaciji Shiny oznake $.

Vaša postavitev je pripravljena, čas je, da v aplikacijo dodate pripomočke. Shiny ponuja različne uporabniške vhodne in izhodne elemente za interakcijo z uporabniki. Oglejmo si nekaj vhodnih in izhodnih funkcij.

Sijajne vhodne funkcije

Vsak vhodni pripomoček ima oznako, ID, druge parametre, kot so izbira, vrednost, izbrani, min, max itd.

  • selectInput ()- ustvari spustni element HTML -.
selectInput ('select', h3 ('Select box'), choices = list ('Choice 1' = 1, 'Choice 2' = 2, 'Choice 3' = 3), selected = 1)

  • numericInput ()- vnosno območje za vnos številke ali besedila.
dateInput ('num', 'Date input', value = '2014-01-01') numericInput ('num', 'Numeric input', value = 1) textInput ('num', 'Numeric input', value = ' Vnesite besedilo ... ')

  • radioButtons ()- ustvari izbirne gumbe za uporabniški vnos.
radioButtons ('radio', h3 ('Radio gumbi'), choices = list ('Choice 1' = 1, 'Choice 2' = 2, 'Choice 3' = 3), selected = 1)

Svetleče izhodne funkcije

Shiny ponuja različne izhodne funkcije, ki se prikazujejo R izhodi, kot so grafi, slike, tabele itd., ki prikazujejo ustrezne R predmet.

  • plotOutput ()- prikaz R ploskev predmeta.
plotOutput'top_batsman ')
  • tableOutput ()- prikaže izhod v obliki tabele.
tableOutput'player_table ')

2. Funkcija strežnika

Strežnik funkcija dizpopolnjuje logiko aplikacije Shiny na strani strežnika. Vključuje ustvarjanje funkcij in izhodov, ki uporabljajo vhodne podatke za ustvarjanje različnih vrst izhodnih podatkov. Vsak odjemalec (spletni brskalnik) pokliče strežniško funkcijo, ko prvič naloži aplikacijo Shiny. Vsak izhod shrani vrnjeno vrednost iz funkcij upodabljanja.

Te funkcije zajamejo izraz R in na izrazu opravijo izračune in predhodno obdelavo. Uporabite funkcijo upodabljanja *, ki ustreza izhodu, ki ga definirate. Dostopamo do vhodnih gradnikovuporabo vnos $ [id widget-id] . Te vhodne spremenljivke so reaktivne vrednosti. Vse vmesne spremenljivke, ustvarjene z uporabo vhodnih spremenljivk, je treba reaktivno uporabiti reaktivni ({}) . Do spremenljivk dostopajte s pomočjo ().

upodabljanje * funkcije izvajajo izračun znotraj strežniške funkcije in shranjujejo v izhodne spremenljivke. Izhod je treba shraniti z izhod $ [ime izhodne spremenljivke] . Vsak upodabljanje * funkcija sprejme en argument, tj. izraz R, obdan z oklepaji, {}.

3. Funkcija ShinyApp

shinyApp ()funkcija je srceaplikacija, ki kliče ČEBULA in strežnik funkcije za ustvarjanje Shiny App.

Spodnja slika prikazuje obris aplikacije Shiny.

Pojdimo na naslednji segment v vadnici R Shiny, da ustvarimo prvo aplikacijo R Shiny.

Ustvarite sijoč spletni projekt

Pojdi do mapa in Ustvari a Nov projekt v katerem koli imeniku -> Svetleča spletna aplikacija -> [Ime imenika sijočih aplikacij]. Vnesite ime imenika in kliknite v redu .

Vsak nov projekt Shiny app bo vseboval primer histograma za razumevanje osnov bleščeče aplikacije. Aplikacija histogram vsebuje drsnik, ki mu sledi histogram, ki posodobi izhodne podatke za spremembo drsnika. Spodaj je rezultat aplikacije histograma.

Če želite zagnati aplikacijo Shiny, kliknite Zaženite aplikacijo v zgornjem desnem kotu izvornega podokna. Aplikacija Shiny prikazuje drsni pripomoček, ki za vnos vzame število zabojev in upodobi histogram glede na vnos.

Zdaj, ko ste razumeli strukturo in kako zagnati aplikacijo Shiny. Nadaljujmo z ustvarjanjem naše prve sijoče aplikacije.

Ustvarite prvo aplikacijo Shiny

Lahko ustvarite nov projekt ali nadaljujete v istem delovnem imeniku. V tej vadnici R Shiny bomo ustvarili preprosto Shiny aplikacijo za prikaz statistike IPL. Nabor podatkov, uporabljen v aplikaciji, je mogoče prenesti tukaj . Nabor podatkov obsega 2 datoteki, dobave.csv vsebuje oddaje točk za vsako žogico (preveč), strelec, kegljač, podrobnosti teka in ujemanja.csv datoteka vsebuje podrobnosti o tekmi, kot so lokacija tekme, žrebanje, prizorišče in podrobnosti igre. Spodnja aplikacija zahteva osnovno znanje o dplyr in za razumevanje spodnje vaje.

Sledite spodnjim korakom, da ustvarite svojo prvo bleščečo aplikacijo.

Korak 1 : Ustvarite oris Shiny app.

Počistite obstoječo kodo, razen definicij funkcij v app . R mapa.

2. korak : Naloži knjižnice in podatke.

V tem koraku naložimo zahtevane pakete in podatke. Nato izvlečene podatke očistite in pretvorite v zahtevano obliko. Pred tem dodajte spodnjo kodo ČEBULA in strežnik funkcijo.

Koda:

knjižnica (sijoča) knjižnica (tidyverse) # Nalaganje nabora podatkov --------------------------------------- ---------------- delive = read.csv ('C: UsersCherukuri_SindhuDownloadsdeliveries.csv', stringsAsFactors = FALSE) ujemanja = read.csv ('C: UsersCherukuri_SindhuDownloadsmatches.csv', stringsAsFactors = FALSE) # Čiščenje nabora podatkov --------------------------------------------- --------- imena (ujemanja) [1] = 'match_id' IPL = dplyr :: inner_join (ujemanja, dostave)

Pojasnilo :

Naloži se prvi dve vrstici tidyverse in Sijoča paket. Naslednji dve vrstici nalagata nabore podatkov, dostavljanja in ujemanja ter shranjujeta v spremenljivkedostaveintekme. Zadnji dve vrstici posodobita ime stolpcatekmenabora podatkov za izvedbo notranjega združevanja zdostavetabela. Rezultat združevanja shranimo vIPLspremenljivka.

3. korak : Ustvarite postavitev aplikacije Shiny .

Kot smo že omenili, ČEBULA funkcija definira videz aplikacije, pripomočke in predmete v aplikaciji Shiny.Podrobno se pogovorimo o istem.

Koda

čebula<- 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 ČEBULA funkcija vsebuje a headerPanel () ali titlePanel () in sledi tabsetPanel za določanje več zavihkov v aplikaciji. tabPanel () definira predmete za vsak zavihek. Vsak tabPanel () je sestavljen iz naslova in mainPanel (). mainPanel () ustvari vsebnik širine 12, tj. celotno okno in poravna vhodne in izhodne predmete v sredini.

Pojasnilo

Aplikacija je sestavljena iz 2 zavihkov: Sezona in Ekipne zmage in točke.

Sezona zavihek je sestavljen iz izberiteInput ( ) , gumb za oddajo in tabelo. season_year se uporablja za branje vhodnih podatkov iz lje vrednot. tableOutput () prikaže izhod tabele, izračunan na podlagi funkcije strežnika.Tabela player_table je prikazana pod gumbom, ki je definiran v strežniški funkciji, ki bo obravnavana v naslednjem koraku. Ekipne zmage in točke zavihek prikazuje ekipno zmago in točke na ustreznih palicah. plotOutput () prikaže izhode, vrnjene iz upodabljanja * funkcije. Vse izhodne, vhodne funkcije so zaprte znotraj oznake div, da se doda vrstni slog.

Zdaj, ko smo seznanjeni s funkcijo ui, nadaljujmo z razumevanjem in uporabo strežniške funkcije v naši vadnici R Shiny.

4. korak: dodajte stavke funkcije strežnika

The strežnik funkcija vključuje ustvarjanje funkcij in outputs, ki uporabljajo uporabniške vhodne podatke za ustvarjanje različnih vrst izhodnih podatkov. Thefunkcija strežnika je razložena po korakih spodaj.

match_year = reaktivni ({match%>% filter (season == input $ season_year)}) play = reactive ({nth (sort (matches_year () $ match_id, decreasing = TRUE), 4)}) matches_played = reactive ({matches_year ()%>% filter (match_id% group_by (team1)%>% summise (count = n ())}) t2 = reaktivni ({matches_played ()%>% group_by (team2)%>% povzetek (count = n ( ))}) wl = reaktivni ({match_played ()%>% filter (zmagovalec! = '')%>% group_by (zmagovalec)%>% povzetek (no_of_wins = n ())}) wl1 = reaktivni ({match_played ( )%>% group_by (zmagovalec)%>% povzetek (no_of_wins = n ())}) izenačen = reaktiven ({matches_played ()%>% filter (winner == '')%>% select (team1, team2)} ) playertable = reactive ({data.frame (Teams = t1 () $ team1, Played = t1 () $ count + t2 () $ count, Wins = wl () $ no_of_wins, Points = wl () $ no_of_wins * 2) })

Zgornji kodi filtrirajo tekme, odigrane vsako leto pred končnico, in rezultat shranijo v spremenljivko match_played.player_tabletabela vsebuje ekipno statistiko tekem, tj. odigrane, zmage in točke. Spremenljivkematch_played,player_table,t1,vezan, itd so vsi vmesni reaktivne vrednosti . Do teh spremenljivk je treba dostopati s pomočjo (), kot je prikazano v zgornji kodi.player_tablese prikaže s funkcijo renderTable. Nato ustvarite izhodno spremenljivko za shranjevanje predvajalnika.

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

Zdaj lahko ustvarjamo palicne lestvice za prikaz zmag in točk, ki jih je v sezoni dosegla vsaka ekipa. Spodnja koda prikazuje črtne grafikone z uporabo ggplot. renderPlot () pridobi objekt ggplot in rezultat shrani v spremenljivkowins_bar_plot.Koda ggplot je samoumevna, vključuje osnovne funkcije grafike in preslikave za urejanje legende, nalepk in ploskve.

izhod $ wins_bar_plot = renderPlot ({ggplot (wl1 () [2: 9,], aes (zmagovalec, no_of_wins, fill = zmagovalec)) + geom_bar (stat = 'identiteta') + theme_classic () + xlab ('Teams') + ylab ('Število zmag') + tema (axis.text.x = element_text (color = 'white'), legend.position = 'none', axis.title = element_text (velikost = 14), plot.background = element_pravi (barva = 'bela')) + geom_text (aes (x = zmagovalec, (no_of_wins + 0,6), label = no_of_wins, size = 7))}) output $ points_bar_plot = renderPlot ({ggplot (playertable (), aes ( Teams, Točke, fill = Teams)) + geom_bar (stat = 'identiteta', size = 3) + theme_classic () + theme (axis.text.x = element_text (color = 'white'), legend.text = element_text ( size = 14), axis.title = element_text (size = 14)) + geom_text (aes (Teams, (Točke + 1), label = Točke, velikost = 7))})

5. korak: zaženite aplikacijo Shiny.

Kliknite Zaženi aplikacijo. Z uspešnim zagonom bo vaša aplikacija Shiny videti kot spodaj. Kakršna koli napaka ali opozorilopovezanih z aplikacijo, jih bo prikazal v R Console.

Tab1 - Sezona

Tab2 - Ekipne zmage in točke

Poglejmo, kakonastavitiRačun Shinyapps.io za razmestitev vaših Shiny aplikacij.

Nastavite račun Shinyapps.io

Pojdi do Shinyapps.io in se prijavite s svojimi podatki, nato za stran dodajte enolično ime računa in ga shranite. Po uspešnem shranjevanju boste videli podroben postopek za razmestitev aplikacij iz konzole R. Sledite spodnjemu postopku za konfiguriranje računa v Rstudio.

Korak 1. Namestite rsconnect

install.packages ('rsconnect')

2. korak Pooblasti račun

The rsconnect paket mora biti pooblaščen za vaš račun z uporabo žetona in tajnosti. Če želite to narediti, kopirajte celoten ukaz, kot je prikazano spodaj na strani vaše nadzorne plošče v R konzola. Ko ste uspešno vnesli ukaz v R, vas zdaj pooblaščam za razmestitev aplikacij v svoj račun Shinyapps.io.

rsconnect :: setAccountInfo (ime = 'ime računa', žeton = 'žeton', skrivnost = 'skrivnost')

3. korak Uvedite aplikacijo

Uporabite spodnjo kodo za razmestitev Shiny apps.

knjižnica (rsconnect) rsconnect :: deployApp ('pot / do / vaše / aplikacije')

Ko ste nastavljeni, ste pripravljeni na uvajanje svojih bleščečih aplikacij.

Zdaj, ko ste se naučili ustvariti in zagnati Shiny apps, aplikacijo, ki smo jo pravkar ustvarili, namestite v Shinyapps.io, kot je razloženo zgoraj, ali kliknite na objavi, ki je prisoten v zgornjem desnem kotu okna Shiny app.

upamda vam je ta vadnica R Shiny pomagala izvedeti, kako ustvariti in zagnati aplikacijo Shiny. Zabavajte se z ustvarjanjem interaktivnih in čudovitih spletnih aplikacij z R Shiny.

Če se želite naučiti programiranja R in ustvariti barvito kariero v podatkovni analitiki, si oglejte našo ki prihaja z usposabljanjem pod vodstvom inštruktorjev v živo in izkušnjami iz resničnih projektov. Ta trening vam bo pomagal razumeti analitiko podatkov in vam pomagal doseči obvladovanje zadeve.