R Shiny Tutorial: Všetko, čo potrebujete vedieť



Tento výukový program R Shiny vám poskytne podrobné a komplexné vedomosti o programe R Shiny a o tom, ako vytvárať interaktívne webové aplikácie.

S vývojom technológie sa objavili novšie nástroje a rámce na vytváranie webových aplikácií, ktoré zobrazujú štatistiky, mapy a grafy v reálnom čase. Pretože tieto funkcie vyžadujú vysoké spracovanie a synchronizáciu, používajú sa programovacie jazyky na zníženie času načítania servera. V tomto výučbe R Shiny vysvetlím, ako čo najlepšie využiť R v dynamických webových aplikáciách.

Preberieme a porozumieme týmto témam:





Čo je to R Shiny?

Shiny je balík R, ktorý používateľom umožňuje vytvárať interaktívne webové aplikácie. Tento nástroj vytvára ekvivalentnú webovú aplikáciu HTML z lesklého kódu. Integrujeme natívny kód HTML a CSS s funkciami R Shiny, aby bola aplikácia prezentovateľná. Shiny kombinuje výpočtovú silu R s interaktivitou moderného webu.Shiny vytvára webové aplikácie, ktoré sú nasadené na webe pomocou vášho servera alebo hostiteľských služieb spoločnosti R Shiny.

Vlastnosti R Shiny:

  • Vytvárajte jednoduché aplikácie so základnými alebo žiadnymi znalosťami webových nástrojov
  • Integrujte Shiny do natívnych webových nástrojov a zlepšite tak flexibilitu a produktivitu
  • Vopred pripravené vstupno-výstupné funkcie a funkcie vykreslenia
  • Jednoduché vykreslenie obsahu aplikácie bez opakovaného načítania
  • Funkcia na pridanie vypočítaných (alebo spracovaných) výstupov z R skriptov
  • Pridajte živé správy a vizualizácie.

To nás privádza k otázke:



V čom sa Lesklý líši od tradičných aplikácií?

Vezmime si príklad aplikácie pre počasie, kedykoľvek používateľ obnoví / načíta stránku alebo zmení akýkoľvek vstup, mal by aktualizovať celú stránku alebo časť stránky pomocou JS. To zvyšuje záťaž na strane servera na spracovanie. Lesklý umožňuje používateľovi izolovať alebo vykresliť (alebo načítať) prvky v aplikácii, čo znižuje zaťaženie servera. Rolovanie po stránkach bolo v tradičných webových aplikáciách jednoduché, ale v prípade aplikácií Shiny to bolo ťažké. Štruktúra kódu hrá hlavnú úlohu v porozumení a ladení kódu. Táto funkcia je rozhodujúca pre lesklé aplikácie v porovnaní s inými aplikáciami.

Prejdime k ďalšej téme v tutoriáli R Shiny, inštalácii balíka R Shiny.

Inštaluje sa R ​​Shiny

Inštalácia Shiny je ako inštalácia ľubovoľného iného balíka v R. Prejsť na R Konzola a spustením nasledujúceho príkazu nainštalujte balík Shiny.



install.packages ('lesklý')

Nainštalujte si R Shiny - R shiny tutorial - Edureka

Po nainštalovaní načítajte balík Lesklé a vytvorte Lesklé aplikácie.

knižnica (lesklá)

Predtým, ako sa v tomto R lesklom výučbe posunieme ďalej, pozrime sa a pochopíme štruktúru lesklej aplikácie.

Štruktúra lesklej aplikácie

Shiny sa skladá z 3 zložiek:

  1. Používateľské rozhranie
  2. Server
  3. ShinyApp

jeden.Funkcia užívateľského rozhrania

Používateľské rozhranie Funkcia (UI) definuje rozloženie a vzhľad aplikácie. Do aplikácie môžete pridať značky CSS a HTML, aby bola aplikácia lepšie prezentovateľná. Táto funkcia obsahuje všetky vstupy a výstupy, ktoré sa majú zobraziť v aplikácii. Každý prvok (divízia alebo karta alebo ponuka) vo vnútri aplikácie je definovaný pomocou funkcií. Prístup k nim sa získava pomocou jedinečného ID, napríklad prvkov HTML.Poďme sa dozvedieť viac o rôznychfunkcie použité v aplikácii.

Lesklé funkcie rozloženia

  • headerPanel ()pridať nadpis do aplikácie. titlePanel () definuje podnadpis aplikácie. Pre lepšie pochopenie nájdete na nasledujúcom obrázku headerPanel a titlePanel .
  • Rozloženie bočného panela ()definuje rozloženie, ktoré sa má držať bočný panelPanel a mainPanel prvkov. Rozloženie rozdeľuje obrazovku aplikácie na bočný panel a hlavný panel. Napríklad na nasledujúcom obrázku je červený obdĺžnik mainPanel oblasť a oblasť čierneho obdĺžnika zvisle je bočný panelPanel oblasti.

  • wellPanel ()definuje kontajner, ktorý obsahuje viac objektov vstupných / výstupných objektov aplikácie v rovnakej mriežke.
  • tabsetPanel ()vytvorí kontajner na uchytenie kariet. tabPanel () pridá kartu do aplikácie definovaním prvkov a komponentov karty. Na obrázku nižšie čiernaobdĺžnik je tabsetPanel objekt a červený obdĺžnik je tabPanel objekt.
  • navlistPanel ()poskytuje bočné menu s odkazmi na rôzne panely kariet podobné tabsetPanel () ako Vertikálny zoznam na ľavej strane obrazovky. Na dolnom obrázku je čierny obdĺžnik navlistPanel objekt a červený obdĺžnik je tabPanel objekt.

Spolu s funkciami Shiny layout môžete do každej vstupnej miniaplikácie v aplikácii pridať aj vložené CSS.Aplikácia Lesklý obsahuje funkcie webových technológií spolu s lesklými funkciami R a funkciami, ktoré ju obohacujú. Používajte značky HTML v aplikácii Shiny pomocou značky $.

Vaše rozloženie je pripravené. Je čas pridať do aplikácie widgety. Shiny poskytuje rôzne vstupné a výstupné prvky pre interakciu používateľa. Poďme diskutovať o niekoľkých vstupných a výstupných funkciách.

Lesklé vstupné funkcie

Každá vstupná miniaplikácia má štítok, Id, ďalšie parametre, ako je výber, hodnota, vybrané, min., Max. Atď.

koľko je 6 spôsobov použitia tohto kľúčového slova?
  • selectInput ()- vytvoriť rozbaľovací prvok HTML -.
selectInput ('select', h3 ('Select box'), choices = list ('Choice 1' = 1, 'Choice 2' = 2, 'Choice 3' = 3), selected = 1)

  • numericInput ()- vstupná oblasť na zadanie čísla alebo textu.
dateInput ('num', 'Date input', value = '2014-01-01') numericInput ('num', 'Numeric input', value = 1) textInput ('num', 'Numeric input', value = ' Zadajte text ... ')

  • radioButtons ()Vytvoriť prepínače pre vstup používateľa -.
radioButtons ('radio', h3 ('Radio buttons'), choices = list ('Choice 1' = 1, 'Choice 2' = 2, 'Choice 3' = 3), selected = 1)

Lesklé výstupné funkcie

Shiny poskytuje rôzne výstupné funkcie, ktoré sa zobrazujú R výstupy, ako sú grafy, obrázky, tabuľky atď., ktoré zobrazujú zodpovedajúce R objekt.

  • plotOutput ()- zobraziť R plot objekt.
plotOutput'top_batsman ')
  • tableOutput ()- zobrazí výstup ako tabuľku.
tableOutput'player_table ')

2. Funkcia servera

Server funkcia dzdokonaľuje logiku aplikácie Shiny na strane servera. Zahŕňa vytváranie funkcií a výstupov, ktoré používajú vstupy na výrobu rôznych druhov výstupu. Každý klient (webový prehliadač) volá funkciu servera pri prvom načítaní aplikácie Shiny. Každý výstup ukladá návratovú hodnotu z funkcií vykreslenia.

Tieto funkcie zachytávajú výraz R. Robia výpočty a predbežné spracovanie výrazu. Použite funkciu render *, ktorá zodpovedá výstupu, ktorý definujete. Pristupujeme k vstupným widgetompoužitím zadajte $ [widget-id] . Tieto vstupné premenné sú reaktívne hodnoty. Všetky prechodné premenné vytvorené pomocou vstupných premenných musia byť reaktívne pomocou reaktívny ({}) . Prístup k premenným získate pomocou ().

vykresliť * funkcie vykonávajú výpočet vo vnútri serverovej funkcie a ukladajú do výstupných premenných. Výstup je potrebné uložiť pomocou výstup $ [názov výstupnej premennej] . Každý vykresliť * funkcia má jediný argument, tj. výraz R obklopený zloženými zátvorkami, {}.

3. Funkcia ShinyApp

shinyApp ()funkcia je srdcomaplikáciu, ktorá volá CIBUĽA a server funkcie na vytvorenie lesklej aplikácie.

Nasledujúci obrázok zobrazuje obrys aplikácie Shiny.

Prejdime k ďalšiemu segmentu v návode R Shiny a vytvoríme prvú aplikáciu R Shiny.

Vytvorte webový projekt Shiny

Ísť do Súbor a vytvoriť Nový projekt v ľubovoľnom adresári -> Lesklá webová aplikácia -> [Názov adresára lesklej aplikácie]. Zadajte názov adresára a kliknite na tlačidlo Ok .

Každý nový projekt aplikácie Shiny bude obsahovať príklad histogramu, aby ste pochopili základy aplikácie Shiny. Aplikácia histogramu obsahuje posúvač nasledovaný histogramom, ktorý aktualizuje výstup pre zmenu posúvača. Nižšie je uvedený výstup z aplikácie histogramu.

Aplikáciu Shiny spustíte kliknutím na ikonu Spustiť aplikáciu v pravom hornom rohu zdrojovej tably. Aplikácia Lesklé zobrazuje posuvnú miniaplikáciu, ktorá berie ako vstup počet zásobníkov a podľa toho vykresľuje histogram.

Teraz, keď ste pochopili štruktúru a spôsob spustenia aplikácie Shiny. Poďme k vytvoreniu našej prvej lesklej aplikácie.

zaokrúhlené dvojité na int java

Vytvorte prvú aplikáciu Shiny

Môžete vytvoriť nový projekt alebo pokračovať v rovnakom pracovnom adresári. V tomto výučbe R Shiny vytvoríme jednoduchú aplikáciu Shiny na zobrazovanie štatistík IPL. Dátový súbor použitý v aplikácii je možné stiahnuť tu . Sada údajov obsahuje 2 súbory, dodávky.csv obsahuje dodávky skóre pre každú loptu (v nad) batsman, nadhadzovač, podrobnosti o behoch a zápasy.csv súbor obsahuje podrobnosti o zápase, ako napríklad umiestnenie zápasu, losovanie, miesto konania a detaily hry. Nižšie uvedená aplikácia vyžaduje základné znalosti o dplyr a aby ste pochopili nižšie uvedený návod.

Podľa nasledujúcich pokynov vytvoríte svoju prvú lesklú aplikáciu.

Krok 1 : Vytvorte obrys lesklej aplikácie.

Vymažte existujúci kód okrem definícií funkcií v aplikácia . R spis.

Krok 2 : Načítajte knižnice a údaje.

V tomto kroku načítame požadované balíčky a dáta. Potom vyčistite a transformujte extrahované údaje do požadovaného formátu. Predtým pridajte nasledujúci kód CIBUĽA a server funkcia.

Kód:

knižnica (lesklá) knižnica (tidyverse) # Načítava sa množina údajov --------------------------------------- ---------------- deliveryies = read.csv ('C: UsersCherukuri_SindhuDownloadsdeliveries.csv', stringsAsFactors = FALSE) zápasy = read.csv ('C: UsersCherukuri_SindhuDownloadsmatches.csv', stringsAsFactors = FALSE) # Dataset čistenia --------------------------------------------- --------- mená (zápasy) [1] = 'match_id' IPL = dplyr :: internal_join (zápasy, dodávky)

Vysvetlenie :

Načítajú sa prvé 2 riadky uprataný a Lesklé balíček. Nasledujúce 2 riadky načítajú dodávky dátových súborov a zhody a ukladajú sa do premennýchdodávkyazápasy. Posledné 2 riadky aktualizujú názov stĺpcazápasydátový súbor na vykonanie vnútorného spojenia sdodávkystôl. Výsledok spojenia uložíme doIPLpremenná.

Krok 3 : Vytvorte rozloženie aplikácie Shiny .

Ako už bolo uvedené, CIBUĽA Táto funkcia definuje vzhľad, widgety a objekty aplikácie v aplikácii Lesklý.Poďme si to isté rozobrať podrobne.

Zákonníka

Cibuľa<- 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 CIBUĽA funkcia obsahuje a headerPanel () alebo titlePanel () a za ktorým nasleduje tabsetPanel definovať viac kariet v aplikácii. tabPanel () definuje objekty pre každú záložku, resp. Každý tabPanel () sa skladá z názvu a mainPanel (). mainPanel () vytvorí kontajner so šírkou 12, tj celé okno, a zarovná vstupné a výstupné objekty do stredu.

Vysvetlenie

Aplikácia sa skladá z 2 kariet: Sezóna a Tímové výhry a body.

Sezóna karta sa skladá z vyberteVstup ( ) , tlačidlo odoslať a tabuľka. season_year sa používa na načítanie vstupu z lje hodnôt. tableOutput () zobrazuje výstup tabuľky vypočítaný na serveri.Tabuľka player_table sa zobrazuje pod tlačidlom, ktoré je definované vo funkcii servera, o ktorej sa bude diskutovať v ďalšom kroku. Tímové výhry a body Záložka zobrazuje tímovú výhru a body v príslušných stĺpcových grafoch. plotOutput () zobrazuje výstupy vrátené z renderu * funkcie. Všetky výstupné a vstupné funkcie sú uzavreté v značke div na pridanie vloženého štýlu.

Teraz, keď už poznáme funkciu ui, poďme s pochopením a používaním funkcie servera v našom výučbe R Shiny.

Krok 4: Pridajte príkazy funkcií servera

The server funkcia zahrňuje vytváranie funkcií a výstupprogramy, ktoré používajú vstupy používateľov na výrobu rôznych druhov výstupu. Thefunkcia servera je vysvetlená krok za krokom nižšie.

zápasy_rok = reaktívne ({zápasy%>% filter (sezóna == vstup $ sezóna_rok)}) playoff = reaktívne ({n-tý (druh (zápasy_rok () $ match_id, klesajúci = PRAVDA), 4)}) zápasy_hrané = reaktívne ({zápasy_rok) ()%>% filter (match_id% group_by (team1)%>% sumarizovať (count = n ())}) t2 = reaktívny ({match_played ()%>% group_by (team2)%>% sumarizovať (count = n ( ))}) wl = reaktívny ({match_played ()%>% filter (víťaz! = '')%>% group_by (víťaz)%>% sumarizovať (no_of_wins = n ())}) wl1 = reaktívny ({zápasy_hratý ( )%>% group_by (víťaz)%>% sumarizuje (no_of_wins = n ())}) vyrovnaný = reaktívny ({match_played ()%>% filter (víťaz == '))%>% vyberte (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) })

Vyššie uvedené filtre kódových zápasov hraných každý rok pred play-off a výsledok ukladať do premennej match_played.player_tabletabuľka obsahuje tímové štatistiky zápasov, teda odohraných, výhier a bodov. Premennézápasy_hrané,player_table,t1,zviazaný, atď., sú všetky prechodné reaktívne hodnoty . K týmto premenným je potrebné pristupovať pomocou (), ako je uvedené v kóde vyššie.player_tablesa zobrazuje pomocou funkcie renderTable. Ďalej vytvorte výstupnú premennú na uloženie playertable.

výstup $ player_table = renderTable ({playertable ()})

Teraz umožňuje vytvárať stĺpcové grafy, ktoré zobrazujú víťazstvá a body dosiahnuté každým tímom v sezóne. Nasledujúci kód zobrazuje stĺpcové grafy pomocou ggplot. renderPlot () načíta objekt ggplot a výsledok uloží do premennejwins_bar_plot.Ggplot kód je samozrejmý, obsahuje základné grafické a mapovacie funkcie na úpravu legendy, štítkov a vykreslenia.

výstup $ wins_bar_plot = renderPlot ({ggplot (wl1 () [2: 9,], aes (víťaz, no_of_wins, fill = víťaz)) + geom_bar (stat = 'identita') + theme_classic () + xlab ('tímy') + ylab ('Number Of Wins') + téma (axis.text.x = element_text (color = 'white')), legend.position = 'none', axis.title = element_text (size = 14), plot.background = element_rect (color = 'white')) + geom_text (aes (x = víťaz, (no_of_wins + 0,6), label = no_of_wins, veľkosť = 7))})) výstup $ points_bar_plot = renderPlot ({ggplot (playertable (), aes ( Tímy, Body, výplň = Tímy)) + geom_bar (stat = 'identita', veľkosť = 3) + theme_classic () + téma (axis.text.x = element_text (color = 'white')), legend.text = element_text ( size = 14), axis.title = element_text (size = 14)) + geom_text (aes (Teams, (Points + 1), label = Points, size = 7))})

Krok 5: Spustite aplikáciu Shiny.

Kliknite na Spustiť aplikáciu. Po úspešnom spustení bude vaša aplikácia Shiny vyzerať takto. Akákoľvek chyba alebo varovaniesúvisiace s aplikáciou, zobrazí ich v konzole R Console.

java nájsť najväčšie číslo v zozname

Tab1 - sezóna

Tab2 - Tímové výhry a body

Pozrime sa akonastaviťÚčet Shinyapps.io na nasadenie vašich aplikácií Shiny.

Nastavte si účet Shinyapps.io

Ísť do Shinyapps.io a prihláste sa pomocou svojich údajov, potom pre stránku zadajte jedinečný názov účtu a uložte ho. Po úspešnom uložení uvidíte podrobný postup nasadenia aplikácií z konzoly R. Podľa nasledujúceho postupu nakonfigurujte svoj účet v Rstudiu.

Krok 1. Nainštalujte rsconnect

install.packages ('rsconnect')

Krok 2. Autorizovať účet

The rsconnect balík musí byť autorizovaný k vášmu účtu pomocou tokenu a tajomstva. Ak to chcete urobiť, skopírujte celý príkaz, ako je uvedené nižšie na stránke vášho hlavného panela v R konzola. Po úspešnom zadaní príkazu do jazyka R vás teraz oprávňujem na nasadenie aplikácií do vášho účtu Shinyapps.io.

rsconnect :: setAccountInfo (name = 'názov účtu', token = 'token', tajný = 'tajný')

Krok 3. Nasadiť aplikáciu

Na nasadenie lesklých aplikácií použite nasledujúci kód.

knižnica (rsconnect) rsconnect :: deployApp ('cesta / k / tvojej / aplikácii')

Po nastavení ste pripravení nasadiť svoje nablýskané aplikácie.

Teraz, keď ste sa naučili, ako vytvárať a spúšťať lesklé aplikácie, nasaďte aplikáciu, ktorú sme práve vytvorili, do Shinyapps.io, ako je vysvetlené vyššie, alebo kliknite na zverejniť, ktorá sa nachádza v pravom hornom rohu okna aplikácie Shiny.

Dúfamže tento výukový program R Shiny vám pomohol naučiť sa, ako vytvoriť a spustiť aplikáciu Shiny. Bavte sa vytváraním interaktívnych a krásnych webových aplikácií pomocou aplikácie R Shiny.

Ak sa chcete naučiť programovanie v R a budovať si pestrú kariéru v oblasti analýzy údajov, potom si pozrite našu stránku ktorá prináša živé školenie vedené inštruktorom a skúsenosti s projektmi v reálnom živote. Toto školenie vám pomôže pochopiť analytiku údajov a pomôže vám dosiahnuť osvojenie si témy.