R Fényes oktatóanyag: Minden, amit tudnod kell



Ez az R Shiny oktatóanyag részletes és átfogó ismereteket nyújt az R Shiny programról és az interaktív webalkalmazások létrehozásáról.

A technológia fejlődésével újabb eszközök és keretek jelentek meg a valós idejű statisztikákat, térképeket és grafikonokat megjelenítő webalkalmazások építéséhez. Mivel ezek a funkciók nagy feldolgozást és szinkronizálást igényelnek, a szerver betöltési idejének csökkentésére programozási nyelveket használnak. Ebben az R Shiny oktatóanyagban elmagyarázom, hogyan lehet a lehető legjobban kihasználni az R dinamikus webalkalmazásokban.

Bemutatjuk és megértjük a következő témákat:





Mi az R Shiny?

A Shiny egy R csomag, amely lehetővé teszi a felhasználók számára interaktív webalkalmazások készítését. Ez az eszköz létrehoz egy HTML-ekvivalens webalkalmazást a Shiny kódból. A natív HTML és CSS kódot integráljuk az R Shiny funkciókkal, hogy az alkalmazás reprezentatív legyen. A Shiny ötvözi R számítási erejét a modern web interaktivitásával.A Shiny olyan webalkalmazásokat hoz létre, amelyeket a szerver vagy az R Shiny tárhelyszolgáltatásai segítségével telepítenek az internetre.

Az R Shiny jellemzői:

  • Készítsen egyszerű alkalmazásokat a webes eszközök alapvető ismerete nélkül
  • A rugalmasság és a termelékenység javítása érdekében integrálja a Shiny programot natív webes eszközökkel
  • Előre elkészített I / O és renderelési funkciók
  • Az alkalmazás tartalmának egyszerű renderelése többszörös újratöltés nélkül
  • Funkció számított (vagy feldolgozott) kimenetek hozzáadásához R szkriptekből
  • Adjon hozzá élő jelentéseket és vizualizációkat.

Ezzel eljutottunk a kérdéshez:



Miben különbözik a Shiny a hagyományos alkalmazásoktól?

Vegyünk egy példát egy időjárási alkalmazásra, amikor a felhasználó frissíti / betölti az oldalt, vagy bármilyen bevitelt megváltoztat, a JS segítségével frissítenie kell az egész oldalt vagy annak egy részét. Ez megnöveli a kiszolgáló oldali feldolgozhatóságot. A Fényes lehetővé teszi a felhasználó számára, hogy elkülönítse vagy megjelenítse (vagy újratöltse) az alkalmazás elemeit, ami csökkenti a szerver terhelését. Az oldalak közötti görgetés egyszerű volt a hagyományos webalkalmazásokban, de a Shiny alkalmazásokkal nehéz volt. A kód felépítése játszik fő szerepet a kód megértésében és hibakeresésében. Ez a funkció kulcsfontosságú a fényes alkalmazások számára a többi alkalmazás szempontjából.

Térjünk át a következő témára az R Shiny oktatóanyagban, az R Shiny csomag telepítésével.

Az R Shiny telepítése

A Shiny telepítése olyan, mint bármely más csomag telepítése az R-be R konzol és futtassa az alábbi parancsot a Shiny csomag telepítéséhez.



install.packages ('fényes')

Telepítse az R Shiny - R fényes oktatóanyagot - Edureka

A telepítés után töltse be a Shiny csomagot Shiny alkalmazások létrehozásához.

könyvtár (fényes)

Mielőtt továbblépnénk ebben az R shiny oktatóanyagban, nézzük meg és értsük meg a Shiny alkalmazás felépítését.

Egy fényes alkalmazás felépítése

A fényes 3 komponensből áll:

  1. Felhasználói felület
  2. szerver
  3. ShinyApp

egy.Felhasználói felület funkció

Felhasználói felület (UI) függvény határozza meg az alkalmazás elrendezését és megjelenését. Hozzáadhat CSS és HTML címkéket az alkalmazáson belül, hogy az alkalmazás jobban látható legyen. A funkció tartalmazza az alkalmazásban megjelenítendő összes bemenetet és kimenetet. Az alkalmazáson belül minden elemet (felosztást, lapot vagy menüt) függvények segítségével lehet meghatározni. Ezekhez egyedi azonosítóval lehet hozzáférni, például HTML elemekkel.Tanuljunk tovább a különféleaz alkalmazásban használt funkciók.

Fényes elrendezés funkciók

  • headerPanel ()adjon hozzá egy címsort az alkalmazáshoz. titlePanel () meghatározza az alkalmazás alcímét. Az alábbi kép jobb megértéséhez headerPanel és titlePanel .
  • SidebarLayout ()meghatározza a megtartandó elrendezést oldalsávPanel és mainPanel elemek. Az elrendezés felosztja az alkalmazás képernyőjét az oldalsáv panelre és a fő panelre. Például az alábbi képen a piros téglalap a mainPanel terület és a fekete téglalap terület függőlegesen oldalsávPanel terület.

  • wellPanel ()meghatároz egy tárolót, amely több objektumot tartalmaz az alkalmazás bemeneti / kimeneti objektumain ugyanazon rácsban.
  • tabsetPanel ()létrehoz egy tárolót a fülek tárolására. tabPanel () fület ad hozzá az alkalmazáshoz a lapelemek és összetevők meghatározásával. Az alábbi képen a feketetéglalap az tabsetPanel objektum és a piros téglalap a tabPanel tárgy.
  • navlistPanel ()oldalsó menüt biztosít, amely linkeket mutat a különböző lapokhoz hasonlóan tabsetPanel () mint egy függőleges lista a képernyő bal oldalán. Az alábbi képen a fekete téglalap az navlistPanel objektum és a piros téglalap a tabPanel tárgy.

A Fényes elrendezés funkciókkal együtt beépített CSS-t is hozzáadhat az alkalmazás minden bemeneti moduljához.A Shiny alkalmazás magában foglalja a webes technológiák jellemzőit, valamint a fényes R funkciókat és funkciókat az alkalmazás gazdagítására. Használjon HTML címkéket a Shiny alkalmazásban címkék $.

java mély másolat vs sekély másolat

Az elrendezés készen áll. Itt az ideje, hogy modulokat adjunk az alkalmazáshoz. A Shiny különféle felhasználói beviteli és kimeneti elemeket kínál a felhasználói interakcióhoz. Beszéljünk néhány bemeneti és kimeneti függvényről.

Fényes bemeneti funkciók

Minden bemeneti widgetnek van egy címkéje, azonosítója, egyéb paraméterek, például választás, érték, kiválasztott, min, max stb.

  • selectInput ()- hozzon létre egy legördülő HTML elemet.
selectInput ('select', h3 ('Select box'), options = list ('Choice 1' = 1, 'Choice 2' = 2, 'Choice 3' = 3), selected = 1)

  • numericInput ()- beviteli terület szám vagy szöveg beírásához.
dateInput ('num', 'Date input', value = '2014-01-01') numericInput ('num', 'Numeric input', value = 1) textInput ('num', 'Numeric input', value = ' Írjon szöveget ... ')

  • rádiógombok ()- hozzon létre rádiógombokat a felhasználói bevitelhez.
rádiógombok ('rádió', h3 ('Rádiógombok'), választások = lista ('1. választás' = 1, '2. választás' = 2, '3. választás' = 3), kiválasztott = 1)

Fényes kimeneti funkciók

A Shiny különféle megjelenítési funkciókat biztosít R olyan kimenetek, mint pl. ábrák, képek, táblázatok stb R tárgy.

  • plotOutput ()- R plot objektum megjelenítése.
plotOutput'top_batsman ')
  • tableOutput ()- a kimenetet táblázatként jeleníti meg.
tableOutput'player_table ')

2. Szerver funkció

szerver d funkciómeghatározza a Shiny alkalmazás kiszolgálóoldali logikáját. Olyan függvények és kimenetek létrehozásával jár, amelyek inputokat használnak különféle kimenetek előállításához. Minden ügyfél (webböngésző) meghívja a szerver funkciót, amikor először betölti a Shiny alkalmazást. Minden kimenet eltárolja a renderelési függvények visszatérési értékét.

Ezek a függvények rögzítenek egy R kifejezést, és számításokat és előfeldolgozást végeznek a kifejezésen. Használja a render * függvényt, amely megfelel az Ön által definiált kimenetnek. Hozzáférünk a bemeneti widgetekhezfelhasználásával input $ [widget-id] . Ezek a bemeneti változók reaktív értékek. A bemeneti változókkal létrehozott összes köztes változót reaktívvá kell tenni reaktív ({}) . Hozzáférés a változókhoz a () használatával.

Vakol * a függvények a kiszolgáló funkción belüli számítást hajtják végre, és a kimeneti változókban tárolják őket. A kimenetet a output $ [output változó neve] . Minden egyes Vakol A * függvény egyetlen argumentumot vesz fel, azaz egy zárójelekkel körülvett R kifejezést, {}.

3. ShinyApp funkció

shinyApp ()funkció a szívea hívó alkalmazás HAGYMA és szerver funkciókkal hozhat létre egy Fényes alkalmazást.

Az alábbi kép a Shiny alkalmazás körvonalát mutatja.

Térjünk át az R Shiny oktatóanyag következő szegmensére az első R Shiny alkalmazás létrehozásához.

Hozzon létre egy fényes webprojektet

Menj File és létrehoz egy Új projekt bármely könyvtárban -> Fényes webalkalmazás -> [A fényes alkalmazás könyvtár neve]. Írja be a könyvtár nevét és kattintson rendben .

Minden új Shiny alkalmazás projekt tartalmaz egy hisztogram példát, hogy megértse a fényes alkalmazás alapjait. A hisztogram alkalmazás tartalmaz egy csúszkát, amelyet egy hisztogram követ, amely frissíti a kimenetet a csúszka változásához. Az alábbiakban a hisztogram alkalmazás kimenete található.

A Shiny alkalmazás futtatásához kattintson a gombra Futtassa az alkalmazást gombra a forrás ablaktábla jobb felső sarkában. A Shiny alkalmazás egy csúszkás widgetet jelenít meg, amely bemeneti tárolók számát veszi fel, és a hisztogramot a bemenet szerint rendereli.

hogyan lehet kettősre konvertálni int

Most, hogy megértette a Shiny alkalmazás felépítését és futtatásának módját. Folytassuk az első Fényes alkalmazás létrehozásával.

Készítse el az első Fényes alkalmazást

Vagy létrehozhat új projektet, vagy folytathatja ugyanabban a munkakönyvtárban. Ebben az R Shiny oktatóanyagban létrehozunk egy egyszerű Shiny alkalmazást az IPL statisztikák megjelenítésére. Az alkalmazásban használt adatkészlet letölthető itt . Az adatkészlet 2 fájlt tartalmaz, szállítások.csv pontszállításokat tartalmaz minden labda (in over) ütőhöz, tekéshez, a futás részleteihez és mérkőzések.csv fájl tartalmazza a mérkőzés részleteit, például a mérkőzés helyét, dobását, helyszínét és játékát. Az alábbi alkalmazás alapvető ismereteket igényel dplyr és megérteni az alábbi oktatóanyagot.

Kövesse az alábbi lépéseket az első fényes alkalmazás létrehozásához.

1. lépés : Hozzon létre egy fényes alkalmazás körvonalát.

Törölje a meglévő kódot, kivéve a függvénydefiníciókat a kb . R fájl.

2. lépés : Töltsön be könyvtárakat és adatokat.

Ebben a lépésben betöltjük a szükséges csomagokat és adatokat. Ezután tisztítsa meg és alakítsa át a kinyert adatokat a kívánt formátumba. Add meg az alábbi kódot azelőtt HAGYMA és szerver funkció.

Kód:

könyvtár (fényes) könyvtár (tidiverse) # Adatkészlet betöltése --------------------------------------- --- HAMIS) # Tisztító adatkészlet --------------------------------------------- --------- nevek (egyezések) [1] = 'match_id' IPL = dplyr :: inner_join (mérkőzések, szállítások)

Magyarázat :

Az első 2 sor betöltődik rendezett és Fényes csomag. A következő 2 sor adatállományokat szállít és egyezik, és változókban tároljaszállításokésmérkőzések. Az utolsó 2 sor frissíti az oszlop nevétmérkőzésekadatkészlet belső illesztés végrehajtására aszállításokasztal. A csatlakozási eredményt aIPLváltozó.

3. lépés : Készítse el a Shiny alkalmazás elrendezését .

Amint azt korábban megbeszéltük, a HAGYMA funkció meghatározza az alkalmazás megjelenését, widgetjeit és objektumait a Fényes alkalmazásban.Beszéljük meg ugyanezt részletesen.

Kód

hagyma<- 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')) ) )))

Az HAGYMA függvény tartalmazza a headerPanel () vagy titlePanel () és utána következik tabsetPanel hogy több lapot definiáljon az alkalmazásban. tabPanel () meghatározza az egyes fülek objektumait, ill. Minden egyes tabPanel () címből és mainPanel (). mainPanel () létrehoz egy 12 szélességű konténert, azaz teljes ablakot, és középre igazítja a be- és kimeneti objektumokat.

Magyarázat

Az alkalmazás 2 fülből áll: Évszak és Csapat nyer és pontokat.

Évszak fül áll válassza az Input lehetőséget ( ) , beküldés gombra és egy táblázatot. szezon_év az input l beolvasására szolgálértéke. tableOutput () Megjeleníti a kiszolgáló függvény alapján kiszámított táblázat kimenetetA táblázat lejátszó_táblája jelenik meg a szerver funkcióban definiált gomb alatt, amelyet a következő lépésben tárgyalunk. Csapat nyer és pontokat lapon a csapatonkénti győzelem és a pontok láthatók a megfelelő oszlopdiagramokban. plotOutput () megjeleníti a renderelésből visszaküldött kimeneteket * funkciókat. Az összes kimeneti, bemeneti funkció egy div tag-be van zárva, hogy hozzáadja a belső stílust.

Most, hogy ismerkedünk az ui funkcióval, folytassuk az R Shiny bemutatónkban a szerverfunkciók megértésével és használatával.

4. lépés: Adja hozzá a kiszolgáló funkció utasításait

Az szerver A function funkciók és outp létrehozásával járuts, amelyek felhasználói bemeneteket használnak különféle kimenetek előállításához. AzA szerver funkciót lépésről lépésre ismertetjük alább.

mérkőzések_év = reaktív ({mérkőzések%>% szűrő (szezon == bevitel $ szezon_év)}) rájátszás = reaktív ({n. (rendezés (meccs_év () $ meccs_azonosító, csökkenő = IGAZ), 4)}) mérkőzések: lejátszott = reaktív ({mérkőzések ()%>% szűrő (match_id% group_by (team1)%>% összesíti (count = n ())}) t2 = reaktív ({match_played ()%>% group_by (team2)%>% összesíti (count = n ( ))}) wl = reaktív ({mérkőzések_játszott ()%>% szűrő (győztes! = '')%>% group_by (győztes)%>% összesítés (no_w_wins = n ())}) wl1 = reaktív ({match_played ( )%>% group_by (győztes)%>% összesíti (no_of_wins = n ())}) kötött = reaktív ({mérkőzések_játszott ()%>% szűrő (nyertes == '')%>% select (team1, team2)} ) playertable = reaktív ({data.frame (Csapatok = t1 () $ team1, Played = t1 () $ count + t2 () $ count, Wins = wl () $ no_of_wins, Pontok = wl () $ no_of_wins * 2) })

A fenti kódszűrő mérkőzések minden évben a rájátszás előtt játszottak, és az eredményt a mérkőzések_játszott változóban tárolják.player_tabletáblázat csapatonként tartalmazza a statisztikákat, azaz a lejátszott, a győzelmeket és a pontokat. Változókmérkőzések_játszva,player_table,t1,bekötöttstb. mind köztesek reaktív értékek . Ezekhez a változókhoz a () használatával kell hozzáférni, amint azt a fenti kód mutatja.player_tablea renderTable függvény segítségével jelenik meg. Ezután hozza létre a kimeneti változót a lejátszható tábla tárolásához.

szelén webdriver uborka példával a napfogyatkozásban
output $ player_table = renderTable ({playertable ()})

Most készíthet sávdiagramokat, amelyek megmutatják az egyes csapatok által a szezonban elért győzelmeket és pontokat. Az alábbi kód oszlopdiagramokat jelenít meg a ggplot segítségével. renderPlot () lekéri a ggplot objektumot, és az eredményt változóban tároljawins_bar_plot.A ggplot kód magától értetődő, magában foglalja az alapvető grafikákat és leképezési funkciókat a jelmagyarázat, a címkék és a diagram szerkesztésére.

kimenet $ wins_bar_plot = renderPlot ({ggplot (wl1 () [2: 9,], aes (győztes, nincs_ győzelem, kitöltés = győztes)) + geom_bar (stat = 'identitás') + theme_classic () + xlab ('csapatok') + ylab ('Győzelmek száma') + téma (tengely.szöveg.x = elem_szöveg (szín = 'fehér'), jelmagyarázat.pozíció = 'nincs', tengely.cím = elem_szöveg (méret = 14), telek.háttér = element_rect (color = 'white')) + geom_text (aes (x = nyertes, (no_of_wins + 0.6), label = no_of_wins, size = 7))}) output $ points_bar_plot = renderPlot ({ggplot (playertable (), aes ( Csapatok, Pontok, kitöltés = Csapatok)) + geom_bar (stat = 'azonosság', méret = 3) + theme_classic () + téma (axis.text.x = element_text (color = 'white'), legend.text = element_text ( méret = 14), tengely.cím = elem_szöveg (méret = 14)) + geom_szöveg (aes (csapatok, (Pontok + 1), címke = Pontok, méret = 7))})

5. lépés: Futtassa a Shiny alkalmazást.

Kattintson az Alkalmazás futtatása elemre. Sikeres futtatással a Shiny alkalmazás az alábbiaknak fog kinézni. Bármilyen hiba vagy figyelmeztetésAz alkalmazáshoz kapcsolódóan ezeket megjeleníti az R Console-ban.

Tab1 - Évad

Tab2 - Csapat nyeremények és pontok

Lássuk, hogyanhogy hozzanak létreShinyapps.io fiókot a Shiny alkalmazások telepítéséhez.

Állítsa be a Shinyapps.io fiókot

Menj Shinyapps.io és jelentkezzen be az adataival, majd adjon meg egy egyedi fióknevet az oldal számára, és mentse el. Sikeres mentés után részletes eljárást fog látni az alkalmazások R konzolról történő telepítéséhez. Kövesse az alábbi eljárást a fiók konfigurálásához az Rstudio alkalmazásban.

1. lépés. Telepítse az rsconnect alkalmazást

install.packages ('rsconnect')

2. lépés. Fiók engedélyezése

Az rcsatlakozzon A csomagot engedélyezni kell a fiókjához egy token és titok használatával. Ehhez másolja a teljes parancsot az alábbiakban az irányítópult oldalán R konzol. Miután sikeresen beírta a parancsot az R-ben, most felhatalmazom Önt, hogy alkalmazásokat telepítsen a Shinyapps.io-fiókjába.

rsconnect :: setAccountInfo (név = 'fiók neve', token = 'token', titok = 'titok')

3. lépés Telepítse az alkalmazást

A Shiny alkalmazások telepítéséhez használja az alábbi kódot.

könyvtár (rsconnect) rsconnect :: deployApp ('elérési út / az / alkalmazásodhoz')

A beállítás után készen áll a fényes alkalmazások telepítésére.

Most, hogy megtanulta, hogyan kell létrehozni és futtatni a Shiny alkalmazásokat, telepítse az imént létrehozott alkalmazást a Shinyapps.io webhelyre a fent leírtak szerint, vagy kattintson a közzétenni, amely a Fényes alkalmazásablak jobb felső sarkában található.

remélemhogy ez az R Shiny oktatóanyag segített megtanulni egy Shiny alkalmazás létrehozását és futtatását. Élvezze az interaktív és gyönyörű webalkalmazások létrehozását az R Shiny használatával.

Ha el akarja tanulni az R programozást, és színes karriert szeretne kialakítani az adatelemzésben, akkor nézze meg a következőt: amely oktató által vezetett élő képzéssel és valós projekt-tapasztalattal jár. Ez a képzés segít megérteni az adatelemzéseket, és elsajátítja a témát.