R Shiny Tutorial: Sve što trebate znati



Ovaj Vodič za R Shiny pružit će vam detaljno i sveobuhvatno znanje o R Shiny i kako stvoriti interaktivne web aplikacije.

Razvojem tehnologije pojavili su se noviji alati i okviri za izgradnju web-aplikacija koje prikazuju statistike, karte i grafikone u stvarnom vremenu. Budući da ove funkcionalnosti zahtijevaju visoku obradu i sinkronizaciju, programski jezici koriste se za smanjenje vremena učitavanja poslužitelja. U ovom tutorijalu R Shiny objasnit ću vam kako najbolje iskoristiti R na dinamičkim web aplikacijama.

Pokriti ćemo i razumjeti sljedeće teme:





Što je R Shiny?

Shiny je R paket koji omogućava korisnicima izradu interaktivnih web aplikacija. Ovaj alat izrađuje HTML ekvivalentnu web aplikaciju iz Shiny koda. Integriramo izvorni HTML i CSS kôd s funkcijama R Shiny kako bi aplikacija bila prezentabilna. Shiny kombinira računsku snagu R s interaktivnošću modernog weba.Shiny izrađuje web aplikacije koje su raspoređene na webu pomoću vašeg poslužitelja ili usluga hostinga R Shiny.

Značajke R Shiny:

  • Stvorite jednostavne aplikacije s osnovnim ili nikakvim znanjem web alata
  • Integrirajte Shiny s izvornim web alatima za poboljšanje fleksibilnosti i produktivnosti
  • Unaprijed izgrađene funkcije I / O i generiranja
  • Jednostavno prikazivanje sadržaja aplikacije bez višestrukog ponovnog učitavanja
  • Značajka za dodavanje izračunatih (ili obrađenih) izlaza iz R skripti
  • Dodajte izvješća i vizualizacije uživo.

To nas dovodi do pitanja:



Po čemu se Shiny razlikuje od tradicionalnih aplikacija?

Dopustite nam da uzmemo primjer vremenske aplikacije, kad god korisnik osvježi / učita stranicu ili promijeni bilo koji unos, trebao bi ažurirati cijelu stranicu ili dio stranice koristeći JS. To dodaje opterećenje na strani poslužitelja za obradu. Shiny omogućuje korisniku da izolira ili prikaže (ili ponovno učita) elemente u aplikaciji što smanjuje opterećenje poslužitelja. Pomicanje kroz stranice bilo je jednostavno u tradicionalnim web aplikacijama, ali bilo je teško sa Shiny aplikacijama. Struktura koda igra glavnu ulogu u razumijevanju i ispravljanju koda. Ova je značajka presudna za sjajne aplikacije u odnosu na druge programe.

Prijeđimo na sljedeću temu u vodiču R Shiny, instaliranje paketa R Shiny.

Instaliranje R Shiny

Instaliranje Shinya je poput instaliranja bilo kojeg drugog paketa u R. Idite na R Konzola i pokrenite naredbu ispod kako biste instalirali paket Shiny.



install.packages ('sjajno')

Instalirajte R Shiny - R shiny tutorial - Edureka

Nakon što instalirate, učitajte Shiny paket da biste stvorili Shiny aplikacije.

knjižnica (sjajna)

Prije nego što krenemo dalje u ovom R sjajnom vodiču, pogledajmo i shvatimo strukturu sjajne aplikacije.

Struktura sjajne aplikacije

Sjajni se sastoji od 3 komponente:

  1. Korisničko sučelje
  2. Poslužitelj
  3. ShinyApp

jedan.Funkcija korisničkog sučelja

Korisničko sučelje (UI) funkcija definira izgled i izgled aplikacije. U aplikaciju možete dodati CSS i HTML oznake kako biste aplikaciju učinili predstavljivijom. Funkcija sadrži sve ulaze i izlaze koji se prikazuju u aplikaciji. Svaki element (odjeljak ili kartica ili izbornik) unutar aplikacije definira se pomoću funkcija. Pristupa im se pomoću jedinstvenog ID-a, poput HTML elemenata.Učimo dalje o raznimfunkcije korištene u aplikaciji.

Sjajne funkcije izgleda

  • headerPanel ()dodajte naslov u aplikaciju. titlePanel () definira podnaslov aplikacije. Pogledajte donju sliku za bolje razumijevanje headerPanel i titlePanel .
  • Izgled bočne trake ()definira izgled za zadržavanje bočna trakaPanel i mainPanel elementi. Izgled dijeli zaslon aplikacije na ploču bočne trake i glavnu ploču. Na primjer, na donjoj slici crveni pravokutnik je mainPanel površina i površina crnog pravokutnika okomito je bočna trakaPanel područje.

primjer pozivanja java udaljene metode
  • wellPanel ()definira spremnik koji sadrži više objekata ulaznih / izlaznih objekata aplikacije u istoj mreži.
  • tabsetPanel ()stvara spremnik za držanje kartica. tabPanel () dodaje karticu u aplikaciju definirajući elemente i komponente kartice. Na donjoj slici, crnapravokutnik je tabsetPanel objekt a crveni pravokutnik je tabPanel objekt.
  • navlistPanel ()pruža bočni izbornik s vezama do različitih ploča s karticama sličnih tabsetPanel () poput okomitog popisa na lijevoj strani zaslona. Na donjoj je slici crni pravokutnik navlistPanel objekt a crveni pravokutnik je tabPanel objekt.

Uz funkcije sjajnog izgleda, u svaki widget u aplikaciji možete dodati i ugrađeni CSS.Aplikacija Shiny uključuje značajke web tehnologija uz sjajne R značajke i funkcije za obogaćivanje aplikacije. Koristite HTML oznake u aplikaciji Shiny pomoću oznake $.

Vaš je izgled spreman, vrijeme je da dodate widgete u aplikaciju. Shiny nudi različite korisničke ulazne i izlazne elemente za interakciju s korisnikom. Razmotrimo nekoliko ulaznih i izlaznih funkcija.

Sjajne ulazne funkcije

Svaki ulazni widget ima oznaku, Id, ostale parametre kao što su izbor, vrijednost, odabrani, min, max itd.

  • selectInput ()- stvoriti padajući HTML element.
selectInput ('select', h3 ('Select box'), choices = list ('Choice 1' = 1, 'Choice 2' = 2, 'Choice 3' = 3), selected = 1)

  • numericInput ()- područje unosa za upisivanje broja ili teksta.
dateInput ('num', 'Date input', value = '01.01.2014') numericInput ('num', 'Numeric input', value = 1) textInput ('num', 'Numeric input', value = ' Unesite tekst ... ')

  • radioButtons ()- stvoriti radio gumbe za unos korisnika.
radioButtons ('radio', h3 ('Radio gumbi'), choices = list ('Choice 1' = 1, 'Choice 2' = 2, 'Choice 3' = 3), selected = 1)

Sjajne izlazne funkcije

Shiny nudi razne izlazne funkcije koje se prikazuju R izlazi kao što su crteži, slike, tablice itd. koji prikazuju odgovarajuće R objekt.

  • plotOutput ()- prikazati objekt R parcele.
plotOutput'top_batsman ')
  • tableOutput ()- prikazuje izlaz kao tablicu.
tableOutput'player_table ')

2. Funkcija poslužitelja

Poslužitelj funkcija dusavršava logiku aplikacije Shiny na strani poslužitelja. Uključuje stvaranje funkcija i izlaza koji koriste ulaze za stvaranje različitih vrsta rezultata. Svaki klijent (web preglednik) poziva funkciju poslužitelja kada prvi put učita aplikaciju Shiny. Svaki izlaz pohranjuje povratnu vrijednost iz funkcija prikaza.

Te funkcije hvataju R izraz i vrše izračune i prethodnu obradu izraza. Upotrijebite funkciju render * koja odgovara izlazu koji definirate. Pristupimo ulaznim widgetimakoristeći ulaz $ [widget-id] . Te ulazne varijable su reaktivne vrijednosti. Sve intermedijarne varijable stvorene pomoću ulaznih varijabli trebaju biti reaktivne pomoću reaktivan ({}) . Pristupite varijablama pomoću ().

prikazati * funkcije izvode proračun unutar funkcije poslužitelja i pohranjuju u izlazne varijable. Izlaz treba spremiti pomoću izlaz $ [ime izlazne varijable] . Svaki prikazati * funkcija uzima jedan argument, tj. R izraz okružen zagradama, {}.

3. ShinyApp funkcija

shinyApp ()funkcija je srceaplikacija koja poziva LUK i poslužitelju funkcije za stvaranje sjajne aplikacije.

Slika ispod prikazuje obrise aplikacije Shiny.

Prijeđimo na sljedeći segment u vodiču R Shiny kako bismo stvorili prvu aplikaciju R Shiny.

Stvorite sjajni web projekt

Ići Datoteka i Stvori a Novi projekt u bilo kojem direktoriju -> Sjajna web aplikacija -> [Naziv direktorija sjajne aplikacije]. Unesite naziv direktorija i kliknite u redu .

Svaki novi projekt Shiny app sadržavat će primjer histograma za razumijevanje osnova sjajne aplikacije. Aplikacija histogram sadrži klizač praćen histogramom koji ažurira izlaz za promjenu klizača. Ispod je izlaz aplikacije histogram.

Da biste pokrenuli aplikaciju Shiny, kliknite na Pokrenite aplikaciju gumb u gornjem desnom kutu izvornog okna. Aplikacija Shiny prikazuje widget klizača koji uzima broj spremnika kao ulaz i prikazuje histogram u skladu s ulazom.

Sad kad ste razumjeli strukturu i kako pokrenuti aplikaciju Shiny. Krenimo s izradom naše prve Sjajne aplikacije.

Izradite prvu aplikaciju Shiny

Možete stvoriti novi projekt ili nastaviti u istom radnom direktoriju. U ovom vodiču R Shiny stvorit ćemo jednostavnu aplikaciju Shiny za prikaz IPL statistike. Skup podataka koji se koristi u aplikaciji može se preuzeti ovdje . Skup podataka sadrži 2 datoteke, isporuke.csv sadrži bodove za svaku loptu (preko) udarača, kuglača, detalje trčanja i šibice.csv datoteka sadrži detalje o utakmici, kao što su mjesto utakmice, bacanje, mjesto i detalji igre. Aplikacija u nastavku zahtijeva osnovno znanje o dplyr i kako biste razumjeli donji vodič.

Slijedite korake u nastavku da biste stvorili svoju prvu sjajnu aplikaciju.

Korak 1 : Stvorite obris sjajne aplikacije.

Obrišite postojeći kod, osim definicija funkcija u app . R datoteka.

Korak 2 : Učitajte knjižnice i podatke.

U ovom koraku učitavamo potrebne pakete i podatke. Zatim očistite i transformirajte izvađene podatke u traženi format. Dodajte donji kod prije LUK i poslužitelju funkcija.

Kodirati:

knjižnica (sjajna) knjižnica (tidyverse) # Učitavanje skupa podataka --------------------------------------- ---------------- isporuke = read.csv ('C: UsersCherukuri_SindhuDownloadsdeliveries.csv', stringsAsFactors = FALSE) odgovara = read.csv ('C: UsersCherukuri_SindhuDownloadsmatches.csv', stringsAsFactors = FALSE) # Čišćenje skupa podataka --------------------------------------------- --------- imena (podudaranja) [1] = 'match_id' IPL = dplyr :: inner_join (podudaranja, isporuke)

Obrazloženje :

Učitavaju se prve 2 linije tidyverse i Sjajan paket. Sljedeća 2 retka učitavaju isporuke i podudaranja skupova podataka i pohranjuju u varijableisporukeišibice. Posljednja 2 retka ažuriraju naziv stupcašibiceskup podataka za izvođenje unutarnjeg spajanja sisporukestol. Rezultat pridruživanja pohranjujemo uIPLvarijabilna.

3. korak : Izradite izgled aplikacije Shiny .

Kao što je već spomenuto, LUK funkcija definira izgled aplikacije, widgete i objekte u aplikaciji Shiny.Razmotrimo isto detaljno.

Kodirati

luk<- 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 LUK funkcija sadrži a headerPanel () ili titlePanel () a slijedi tabsetPanel za definiranje više kartica u aplikaciji. tabPanel () definira objekte za svaku karticu. Svaki tabPanel () sastoji se od naslova i mainPanel (). mainPanel () stvara spremnik širine 12 tj. puni prozor i poravnava ulazne i izlazne objekte u središte.

Obrazloženje

Aplikacija se sastoji od 2 kartice: Sezona i Pobjede i bodovi u timu.

Sezona Kartica se sastoji od selectInput ( ) , gumb za prijavu i tablicu. sezona_godina koristi se za čitanje unosa s lje vrijednosti. tableOutput () prikazuje izlaz tablice izračunat na funkciji poslužitelja.Tablica player_table prikazana je ispod gumba koji je definiran u funkciji poslužitelja o čemu će se raspravljati u sljedećem koraku. Pobjede i bodovi u timu kartica prikazuje timsku pobjedu i bodove na odgovarajućim trakačkim ljestvicama. plotOutput () prikazuje izlaze vraćene iz rendera * funkcije. Sve izlazne, ulazne funkcije zatvorene su unutar div oznake za dodavanje umetnutog stila.

Sad kad smo upoznati s funkcijom ui, krenimo s razumijevanjem i upotrebom funkcije poslužitelja u našem vodiču R Shiny.

Korak 4: Dodajte naredbe funkcije poslužitelja

The poslužitelju funkcija uključuje stvaranje funkcija i outputs koji koriste korisničke ulaze za stvaranje različitih vrsta rezultata. Thefunkcija poslužitelja objašnjena je korak po korak u nastavku.

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

Gornje šifre filtriranja utakmica odigranih prije doigravanja svake godine, i pohranjuju rezultat u varijablu match_played.player_tabletablica sadrži momčadsku statistiku utakmica, tj. odigrane, pobjede i bodove. Varijableodigrane šibice,player_table,t1,vezan, itd. sve su srednje reaktivne vrijednosti . Ovim varijablama treba pristupiti pomoću () kao što je prikazano u gornjem kodu.player_tableprikazuje se pomoću funkcije renderTable. Zatim stvorite izlaznu varijablu za pohranu playtable-a.

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

Sada omogućava izradu trakastih ljestvica kako bi prikazao pobjede i bodove koje je postigao svaki tim u sezoni. Donji kôd prikazuje trakasti grafikon pomoću ggplota. renderPlot () dohvaća ggplot objekt i sprema rezultat u varijabluwins_bar_plot.Ggplot kôd je sam po sebi razumljiv, uključuje osnovne funkcije grafike i mapiranja za uređivanje legende, naljepnica i crteža.

izlaz $ wins_bar_plot = renderPlot ({ggplot (wl1 () [2: 9,], aes (pobjednik, br_pobjeda, ispuna = pobjednik)) + geom_bar (stat = 'identitet') + theme_classic () + xlab ('Timovi') + ylab ('Broj pobjeda') + tema (axis.text.x = element_text (boja = 'bijela'), legend.position = 'none', axis.title = element_text (veličina = 14), plot.background = element_regular (color = 'white')) + geom_text (aes (x = pobjednik, (no_of_wins + 0,6), label = no_of_wins, size = 7))}) output $ points_bar_plot = renderPlot ({ggplot (playertable (), aes ( Timovi, bodovi, popuni = timovi)) + geom_bar (stat = 'identitet', veličina = 3) + theme_classic () + tema (axis.text.x = element_text (boja = 'bijela'), legend.text = element_text ( size = 14), axis.title = text_text (size = 14)) + geom_text (aes (Teams, (Bodovi + 1), oznaka = Bodovi, veličina = 7))})

Korak 5: Pokrenite aplikaciju Shiny.

Kliknite Pokreni aplikaciju. Uz uspješno pokretanje, vaša aplikacija Shiny izgledat će kao u nastavku. Bilo kakva pogreška ili upozorenjepovezane s aplikacijom, prikazat će ih u R Consoleu.

Tab1 - Sezona

Tab2 - Pobjede i bodovi u timu

tip podataka za datum u sql

Da vidimo kakopostavitiShinyapps.io račun za postavljanje vaših sjajnih aplikacija.

Postavite račun Shinyapps.io

Ići Shinyapps.io i prijavite se sa svojim podacima, a zatim dodajte jedinstveni naziv računa za stranicu i spremite je. Nakon uspješnog spremanja vidjet ćete detaljan postupak za postavljanje aplikacija s R konzole. Slijedite postupak u nastavku za konfiguriranje računa u Rstudio.

Korak 1. Instalirajte rsconnect

install.packages ('rsconnect')

Korak 2. Odobri račun

The rsconnect paket mora biti autoriziran za vaš račun pomoću tokena i tajne. Da biste to učinili, kopirajte cijelu naredbu kao što je prikazano dolje na stranici vaše nadzorne ploče u R konzola. Nakon što ste uspješno unijeli naredbu u R, sada vas ovlašćujem za postavljanje aplikacija na vaš račun Shinyapps.io.

rsconnect :: setAccountInfo (name = 'naziv računa', token = 'token', secret = 'secret')

3. korak Postavite aplikaciju

Koristite donji kod za postavljanje sjajnih aplikacija.

biblioteka (rsconnect) rsconnect :: deployApp ('put / do / vaše / aplikacije')

Jednom postavljeni, spremni ste za postavljanje svojih sjajnih aplikacija.

Sad kad ste naučili kako stvarati i pokretati aplikacije Shiny, rasporedite aplikaciju koju smo upravo stvorili u Shinyapps.io kako je gore objašnjeno ili kliknite na objaviti, koja je prisutna u gornjem desnom kutu prozora aplikacije Shiny.

nadam seda vam je ovaj tutorial R Shiny pomogao da naučite kako stvoriti i pokrenuti aplikaciju Shiny. Zabavite se stvarajući interaktivne i lijepe web aplikacije pomoću R Shiny.

Ako želite naučiti R programiranje i stvoriti živopisnu karijeru u Data Analyticsu, pogledajte našu koja dolazi s treningom uživo pod vodstvom instruktora i iskustvom u stvarnom životu. Ovaj trening pomoći će vam da razumijete analitiku podataka i pomoći vam da postignete ovladavanje predmetom.