R Tutorial brillant: tot el que heu de saber

Aquest tutorial de R Shiny us proporcionarà un coneixement detallat i exhaustiu de R Shiny i de com crear aplicacions web interactives.

Amb l'evolució de la tecnologia, han sorgit noves eines i marcs per construir aplicacions web que mostren estadístiques, mapes i gràfics en temps real. Com que aquestes funcionalitats requereixen un alt processament i sincronització, s’utilitzen llenguatges de programació per reduir el temps de càrrega del servidor. En aquest tutorial de R Shiny, explicaré com fer el millor ús de R en aplicacions web dinàmiques.



Cobrirem i comprendrem els temes següents:



Què és R Shiny?

Shiny és un paquet R que permet als usuaris crear aplicacions web interactives. Aquesta eina crea una aplicació web equivalent a HTML a partir del codi Shiny. Integrem codi HTML i CSS natius amb funcions R Shiny per fer presentable l’aplicació. Shiny combina la potència computacional de R amb la interactivitat de la web moderna.Shiny crea aplicacions web que es desplegen al web mitjançant el vostre servidor o els serveis d’allotjament de R Shiny.

Característiques de R Shiny:

  • Creeu aplicacions fàcils amb coneixements bàsics o sense coneixements d’eines web
  • Integreu Shiny amb eines web natives per millorar la flexibilitat i la productivitat
  • Funcions d'E / S i renderització predefinides
  • Representació fàcil del contingut de l'aplicació sense recàrregues múltiples
  • Funció per afegir sortides computades (o processades) a partir de scripts R.
  • Afegiu informes i visualitzacions en directe.

Això ens porta a la pregunta:



En què es diferencia Shiny de les aplicacions tradicionals?

Ens permet prendre un exemple d'aplicació meteorològica, cada vegada que l'usuari actualitza / carrega la pàgina o canvia qualsevol entrada, ha d'actualitzar tota la pàgina o part de la pàgina mitjançant JS. Això afegeix càrrega al costat del servidor per al seu processament. Brillant permet a l'usuari aïllar o representar (o recarregar) elements a l'aplicació, cosa que redueix la càrrega del servidor. Desplaçar-se per les pàgines va ser fàcil a les aplicacions web tradicionals, però va ser difícil amb les aplicacions Shiny. L’estructura del codi té el paper principal en la comprensió i depuració del codi. Aquesta característica és crucial per a aplicacions brillants respecte a altres aplicacions.

Passem al següent tema del tutorial R Shiny, instal·lant el paquet R Shiny.

Instal·lació de R Shiny

Instal·lar Shiny és com instal·lar qualsevol altre paquet a R. Aneu a R Consola i executeu l'ordre següent per instal·lar el paquet Shiny.



install.packages ('brillant')

Instal·leu R Shiny - Tutorial R shiny - Edureka

Un cop instal·lat, carregueu el paquet Shiny per crear aplicacions Shiny.

biblioteca (brillant)

Abans de seguir endavant en aquest tutorial R brillant, vegem i entenem l’estructura d’una aplicació Shiny.

Estructura d'una aplicació brillant

Shiny consta de 3 components:

  1. Interfície d'usuari
  2. Servidor
  3. ShinyApp

1.Funció d'interfície d'usuari

Interfície d'usuari La funció (IU) defineix el disseny i l’aspecte de l’aplicació. Podeu afegir etiquetes CSS i HTML a l'aplicació per fer-la més presentable. La funció conté totes les entrades i sortides que es mostraran a l'aplicació. Cada element (divisió o pestanya o menú) dins de l'aplicació es defineix mitjançant funcions. S'hi accedeix mitjançant un identificador únic, com ara elements HTML.Aprenem més sobre diversosfuncions utilitzades a l'aplicació.

Funcions de disseny brillant

  • headerPanel ()afegiu un encapçalament a l'aplicació. titlePanel () defineix el subtítol de l'aplicació. Consulteu la imatge següent per obtenir una millor comprensió de headerPanel i titlePanel .
  • SidebarLayout ()defineix el disseny que cal mantenir sidebarPanel i mainPanel elements. El disseny divideix la pantalla de l'aplicació en el tauler de la barra lateral i el tauler principal. Per exemple, a la imatge següent, el rectangle vermell és el mainPanel i l’àrea del rectangle negre verticalment és sidebarPanel àrea.

  • wellPanel ()defineix un contenidor que conté diversos objectes d’entrada / sortida d’objectes a la mateixa quadrícula.
  • tabsetPanel ()crea un contenidor per contenir pestanyes. tabPanel () afegeix pestanya a l'aplicació definint elements i components de pestanya. A la imatge següent, el negrerectangle és tabsetPanel objecte i el rectangle vermell és tabPanel objecte.
  • navlistPanel ()proporciona un menú lateral amb enllaços a diferents taulers de pestanyes similars a tabsetPanel () com una llista vertical a la part esquerra de la pantalla. A la imatge següent, es mostra el rectangle negre navlistPanel objecte i el rectangle vermell és tabPanel objecte.

Juntament amb les funcions de disseny brillants, també podeu afegir CSS en línia a cada giny d'entrada de l'aplicació.L'aplicació Shiny incorpora funcions de les tecnologies web juntament amb funcions i funcions R brillants per enriquir l'aplicació. Utilitzeu etiquetes HTML a l'aplicació Shiny mitjançant etiquetes $.

El vostre disseny està llest. És hora d'afegir ginys a l'aplicació. Shiny proporciona diversos elements d'entrada i sortida de l'usuari per a la interacció de l'usuari. Analitzem algunes funcions d'entrada i sortida.

Funcions d'entrada brillants

Cada widget d’entrada té una etiqueta, un identificador, altres paràmetres com ara elecció, valor, seleccionat, mínim, màxim, etc.

  • selectInput ()- Creeu un element HTML desplegable.
selectInput ('select', h3 ('quadre de selecció'), decisions = llista ('Choice 1' = 1, 'Choice 2' = 2, 'Choice 3' = 3), selected = 1)

  • numericInput ()- àrea d'entrada per escriure un número o un text.
dataInput ('num', 'Data input', value = '01-01-2014') numericInput ('num', 'Numeric input', value = 1) textInput ('num', 'Numeric input', value = ' Introduïu text ... ')

  • botons de ràdio ()- crear botons d'opció per a l'entrada de l'usuari.
botons de ràdio ('ràdio', h3 ('botons d'opció'), eleccions = llista ('Elecció 1' = 1, 'Elecció 2' = 2, 'Elecció 3' = 3), seleccionat = 1)

Funcions de sortida brillants

Shiny proporciona diverses funcions de sortida que es mostren R sortides com a gràfics, imatges, taules, etc. que mostren els corresponents R objecte.

  • plotOutput ()- mostra l'objecte de trama R.
plotOutput'top_batsman ')
  • tableOutput ()- mostra la sortida com a taula.
tableOutput'table_player ')

2. Funció del servidor

Servidor funció ddefineix la lògica del servidor de l’aplicació Shiny. Es tracta de crear funcions i sortides que utilitzen entrades per produir diversos tipus de sortida. Cada client (navegador web) truca a la funció de servidor quan es carrega per primera vegada l’aplicació Shiny. Cada sortida emmagatzema el valor de retorn de les funcions de renderització.

Aquestes funcions capturen una expressió R i fan càlculs i pre-processament de l'expressió. Utilitzeu la funció render * que correspon a la sortida que esteu definint. Accedim als ginys d’entradautilitzant entrada $ [widget-id] . Aquestes variables d’entrada són valors reactius. Qualsevol variable intermèdia creada amb variables d'entrada ha de ser reactiva mitjançant reactiu ({}) . Accediu a les variables mitjançant ().

renderitzar * Les funcions realitzen el càlcul dins de la funció del servidor i s'emmagatzemen a les variables de sortida. Cal desar la sortida amb sortida $ [nom de la variable de sortida] . Cadascun renderitzar * La funció pren un únic argument, és a dir, una expressió R envoltada de claus, {}.

3. Funció ShinyApp

shinyApp ()la funció és el cor del'aplicació que truca Ceba i servidor funcions per crear una aplicació brillant.

La imatge següent mostra l’esquema de l’aplicació Shiny.

defineix el camí de classe per a java

Passem al següent segment del tutorial R Shiny per crear la primera aplicació R Shiny.

Creeu un projecte web Shiny

Anar a Dossier i Crea un fitxer Nou projecte a qualsevol directori -> Aplicació web brillant -> [Nom del directori de l'aplicació Shiny]. Introduïu el nom del directori i feu clic a D'acord .

Cada nou projecte d'aplicacions brillants contindrà un exemple d'histograma per entendre els conceptes bàsics d'una aplicació brillant. L'aplicació d'histograma conté un control lliscant seguit d'un histograma que actualitza la sortida d'un canvi al control lliscant. A continuació es mostra la sortida de l’aplicació d’histograma.

Per executar l'aplicació Shiny, feu clic a Executa l'aplicació a l'extrem superior dret del tauler d'origen. L'aplicació Shiny mostra un widget lliscant que pren el nombre de contenidors com a entrada i fa l'histograma segons l'entrada.

Ara que heu entès l’estructura i com executar una aplicació Shiny. Passem a crear la nostra primera aplicació brillant.

Creeu la primera aplicació Shiny

Podeu crear un projecte nou o continuar al mateix directori de treball. En aquest tutorial R Shiny, crearem una senzilla aplicació Shiny per mostrar estadístiques IPL. Es pot descarregar el conjunt de dades utilitzat a l'aplicació aquí . El conjunt de dades consta de 2 fitxers, lliuraments.csv conté lliuraments de puntuacions per a cada bola (en més) de batedor, jugador de bitlles, detalls de cursa i coincidències.csv el fitxer conté detalls del partit, com ara la ubicació del partit, el sorteig, el lloc i els detalls del joc. L'aplicació següent requereix coneixements bàsics de dplyr i per entendre el tutorial següent.

Seguiu els passos següents per crear la vostra primera aplicació brillant.

Pas 1 : Creeu l'esquema d'una aplicació brillant.

Esborreu el codi existent a excepció de les definicions de funcions del fitxer aplicació . R dossier.

Pas 2 : Carregueu biblioteques i dades.

En aquest pas, carreguem els paquets i les dades necessaris. A continuació, netegeu i transformeu les dades extretes al format requerit. Afegiu el codi següent abans Ceba i servidor funció.

Codi:

biblioteca (brillant) biblioteca (tidyverse) # S'està carregant el conjunt de dades --------------------------------------- ---------------- lliuraments = read.csv ('C: UsersCherukuri_SindhuDownloadsdeliveries.csv', stringsAsFactors = FALSE) matches = read.csv ('C: UsersCherukuri_SindhuDownloadsmatches.csv', stringsAsFactors = FALS) # Conjunt de dades de neteja -------------------------------------------- --------- noms (coincidències) [1] = 'match_id' IPL = dplyr :: inner_join (coincidències, lliuraments)

Explicació :

Es carreguen les 2 primeres línies endreçat i Brillant paquet. Les següents 2 línies carreguen lliuraments de conjunts de dades i coincideixen i s’emmagatzemen en variableslliuramentsipartits. Les dues darreres línies actualitzen el nom de la columna del fitxerpartitsconjunt de dades per realitzar una unió interior amb el fitxerlliuramentstaula. Emmagatzemem el resultat d'unió al fitxerIPLvariable.

Pas 3 : Creeu el disseny de l'aplicació Shiny .

Com s'ha comentat abans, el Ceba La funció defineix l’aspecte, els ginys i els objectes de l’aplicació a l’aplicació Shiny.Anem a discutir el mateix en detall.

Codi

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

El Ceba La funció conté un headerPanel () o bé titlePanel () i seguit de tabsetPanel per definir diverses pestanyes a l'aplicació. tabPanel () defineix els objectes de cada pestanya, respectivament. Cadascun tabPanel () consta de títol i mainPanel (). mainPanel () crea un contenidor d'amplada 12, és a dir, finestra completa i alinea els objectes d'entrada i sortida al centre.

Explicació

L'aplicació consta de 2 pestanyes: Temporada i Guanys i punts de l'equip.

Temporada La pestanya està formada per seleccioneu Entrada ( ) , envia el botó i una taula. season_year s'utilitza per llegir les entrades de lés de valors. tableOutput () mostra la sortida de la taula calculada en funció del servidor.Taula player_table es mostra a sota del botó que es defineix a la funció del servidor, que es discutirà al següent pas. Guanys i punts de l'equip a la pestanya es mostren els guanys i els punts per equips en els gràfics de barres respectius. plotOutput () mostra les sortides retornades del render * funcions. Totes les funcions de sortida i entrada s’inclouen dins d’una etiqueta div per afegir un estil en línia.

Ara que ja coneixem la funció d’interfície d’usuari, anem a entendre i utilitzar la funció de servidor al nostre tutorial R Shiny.

Pas 4: afegiu les instruccions de la funció del servidor

El servidor La funció implica crear funcions i sortiruts que utilitzen entrades d'usuari per produir diversos tipus de sortida. ElLa funció del servidor s'explica pas a pas a continuació.

matches_year = reactiu ({matches%>% filter (season == input $ season_year)}) playoff = reactive ({nth (sort (matches_year () $ match_id, disminuint = TRUE), 4)}) matches_played = reactiu ({matches_year ()%>% filter (match_id% group_by (team1)%>% resume (count = n ())}) t2 = reactiu ({matches_played ()%>% group_by (team2)%>% resume (count = n ( ))}) wl = reactiu ({matches_played ()%>% filter (winner! = '')%>% group_by (winner)%>% resume (no_of_wins = n ())}) wl1 = reactive ({matches_played ( )%>% group_by (guanyador)%>% resumeix (no_of_wins = n ())}) tie = reactiu ({matches_played ()%>% filter (winner == '')%>% select (team1, team2)} ) playertable = reactiu ({data.frame (Equips = t1 () $ equip1, jugat = t1 () $ recompte + t2 () $ recompte, Guanys = wl () $ no_of_wins, Punts = wl () $ no_of_wins * 2) })

Els codis anteriors filtren els partits jugats abans dels playoffs cada any i emmagatzemen el resultat a la variable matches_played.taula_jugadorla taula conté estadístiques de partit per equips, és a dir, jugades, victòries i punts. Les variablespartits_jugats,taula_jugador,t1,lligat, etc són tots intermedis valors reactius . Cal accedir a aquestes variables mitjançant () tal com es mostra al codi anterior.taula_jugadores mostra mitjançant la funció renderTable. A continuació, creeu la variable de sortida per emmagatzemar playertable.

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

Ara permet crear gràfics de barres per mostrar les victòries i els punts aconseguits per cada equip a la temporada. El codi següent mostra gràfics de barres mitjançant ggplot. renderPlot () recupera l'objecte ggplot i emmagatzema el resultat a la variablewins_bar_plotEl codi ggplot s’explica per si mateix, implica gràfics bàsics i funcions de mapatge per editar llegendes, etiquetes i dibuixar.

sortida $ wins_bar_plot = renderPlot ({ggplot (wl1 () [2: 9,], aes (guanyador, no_of_wins, fill = guanyador)) + geom_bar (stat = 'identitat') + theme_classic () + xlab ('Equips') + ylab ('Nombre de victòries') + tema (axis.text.x = text_element (color = 'blanc'), legend.position = 'cap', axis.title = text_element (mida = 14), plot.background = element_rect (color = 'blanc')) + geom_text (aes (x = guanyador, (no_of_wins + 0,6), label = no_of_wins, mida = 7))}) sortida $ points_bar_plot = renderPlot ({ggplot (playertable (), aes ( Equips, Punts, omplir = Equips)) + geom_bar (stat = 'identitat', mida = 3) + tema_clàssic () + tema (axis.text.x = element_text (color = 'blanc'), llegenda.text = element_text ( mida = 14), axis.title = element_text (mida = 14)) + geom_text (aes (Equips, (Punts + 1), etiqueta = Punts, mida = 7))})

Pas 5: executeu l'aplicació Shiny.

Feu clic a Executa aplicació. Amb un bon funcionament, l'aplicació Shiny es veurà a continuació. Qualsevol error o advertènciarelacionat amb l'aplicació, els mostrarà a la consola R.

Pestanya 1: temporada

Tab2: guanys i punts de l'equip

A veure comconfigurarCompte Shinyapps.io per desplegar les vostres aplicacions Shiny.

Configureu el compte de Shinyapps.io

Anar a Shinyapps.io i inicieu la sessió amb la vostra informació i, a continuació, doneu un nom de compte únic a la pàgina i deseu-la. Després de desar-lo correctament, veureu un procediment detallat per desplegar aplicacions des de la consola R. Seguiu el procediment següent per configurar el vostre compte a Rstudio.

Pas 1. Instal·leu rsconnect

install.packages ('rsconnect')

Pas 2. Autoritza el compte

El rsconnect el paquet s’ha d’autoritzar al vostre compte mitjançant un testimoni i un secret. Per fer-ho, copieu tota l'ordre tal com es mostra a la pàgina del tauler de control de R consola. Un cop hàgiu introduït l'ordre correctament a R, ara us autoritzo a desplegar aplicacions al vostre compte Shinyapps.io.

rsconnect :: setAccountInfo (name = 'nom del compte', token = 'fitxa', secret = 'secret')

Pas 3. Implementa l'aplicació

Utilitzeu el codi següent per desplegar aplicacions brillants.

library (rsconnect) rsconnect :: deployApp ('path / to / your / app')

Un cop configurat, ja podreu desplegar les vostres aplicacions brillants.

què és fava a Java

Ara que heu après a crear i executar aplicacions Shiny, desplegueu l'aplicació que acabem de crear a Shinyapps.io tal com s'ha explicat anteriorment o feu clic a publicar, que es troba a l'extrem superior dret de la finestra de l'aplicació Shiny.

Esperoque aquest tutorial R Shiny us ha ajudat a aprendre a crear i executar una aplicació Shiny. Diverteix-te creant aplicacions web interactives i boniques amb R Shiny.

Si voleu aprendre Programació R i construir una carrera colorida a Data Analytics, consulteu el nostre que inclou formació en viu dirigida per un instructor i experiència en projectes reals. Aquesta formació us ajudarà a comprendre les anàlisis de dades i us ajudarà a dominar el tema.