Com a evolução da tecnologia, novas ferramentas e estruturas surgiram para a construção de aplicativos da web que exibem estatísticas, mapas e gráficos em tempo real. Uma vez que essas funcionalidades exigem alto processamento e sincronização, as linguagens de programação são usadas para reduzir o tempo de carregamento do servidor. Neste tutorial do R Shiny, explicarei como fazer o melhor uso do R em aplicativos da web dinâmicos.
Cobriremos e compreenderemos os seguintes tópicos:
O que é R Shiny?
Shiny é um pacote R que permite aos usuários construir aplicativos da web interativos. Esta ferramenta cria um aplicativo da web equivalente em HTML a partir do código Shiny. Integramos código HTML e CSS nativo com funções R Shiny para tornar o aplicativo apresentável. Shiny combina o poder computacional do R com a interatividade da web moderna.O Shiny cria aplicativos da web que são implantados na web usando seu servidor ou os serviços de hospedagem do R Shiny.
definir caminho de classe para java
Recursos do R Shiny:
- Crie aplicativos fáceis com básico ou nenhum conhecimento de ferramentas da web
- Integre o Shiny com ferramentas nativas da web para melhorar a flexibilidade e a produtividade
- E / S pré-construídas e funções de renderização
- Renderização fácil do conteúdo do aplicativo sem múltiplas recargas
- Recurso para adicionar saídas computadas (ou processadas) de scripts R
- Adicione relatórios e visualizações ao vivo.
Isso nos leva à questão:
Como o Shiny difere dos aplicativos tradicionais?
Vamos dar um exemplo de um aplicativo de clima, sempre que o usuário atualiza / carrega a página ou altera qualquer entrada, ele deve atualizar a página inteira ou parte da página usando JS. Isso adiciona carga ao servidor para processamento. O Shiny permite ao usuário isolar ou renderizar (ou recarregar) elementos no aplicativo, o que reduz a carga do servidor. Rolar pelas páginas era fácil em aplicativos da web tradicionais, mas difícil com aplicativos Shiny. A estrutura do código desempenha o papel principal na compreensão e depuração do código. Esse recurso é crucial para aplicativos brilhantes em relação a outros aplicativos.
Vamos passar para o próximo tópico no tutorial do R Shiny, instalando o pacote R Shiny.
Instalando R Shiny
Instalar o Shiny é como instalar qualquer outro pacote em R. Vá para R Console e execute o comando abaixo para instalar o pacote Shiny.
install.packages ('brilhante')
Depois de instalar, carregue o pacote Shiny para criar aplicativos Shiny.
biblioteca (brilhante)
Antes de prosseguirmos neste tutorial brilhante de R, vamos ver e entender a estrutura de um aplicativo Shiny.
Estrutura de um aplicativo Shiny
Brilhante consiste em 3 componentes:
1.Função de interface do usuário
Interface de usuário A função (UI) define o layout e a aparência do aplicativo. Você pode adicionar tags CSS e HTML dentro do aplicativo para torná-lo mais apresentável. A função contém todas as entradas e saídas a serem exibidas no aplicativo. Cada elemento (divisão ou guia ou menu) dentro do aplicativo é definido usando funções. Eles são acessados por meio de um id único, como elementos HTML.Vamos aprender mais sobre váriosfunções usadas no aplicativo.
Funções de layout brilhante
headerPanel ()
adicione um título ao aplicativo. titlePanel () define o subtítulo do aplicativo. Veja a imagem abaixo para uma melhor compreensão do headerPanel e titlePanel .
SidebarLayout ()
define o layout para manter sidebarPanel e mainPanel elementos. O layout divide a tela do aplicativo em painel da barra lateral e painel principal. Por exemplo, na imagem abaixo, o retângulo vermelho é o mainPanel área e a área do retângulo preto verticalmente é sidebarPanel área.
wellPanel ()
define um contêiner que contém vários objetos de entrada / saída do app de objetos na mesma grade.tabsetPanel ()
cria um contêiner para conter as guias. tabPanel () adiciona tab no aplicativo definindo elementos e componentes de tab. Na imagem abaixo, o pretoretângulo é tabsetPanel objeto e o retângulo vermelho é o tabPanel objeto.navlistPanel ()
fornece um menu lateral com links para diferentes painéis de guia semelhantes a tabsetPanel () como uma lista vertical no lado esquerdo da tela. Na imagem abaixo, o retângulo preto é navlistPanel objeto e o retângulo vermelho é o tabPanel objeto.
Junto com as funções de layout Shiny, você também pode adicionar CSS embutido a cada widget de entrada no aplicativo.O aplicativo Shiny incorpora recursos das tecnologias da web junto com recursos e funções R brilhantes para enriquecer o aplicativo. Use tags HTML dentro do aplicativo Shiny usando tags $.
Seu layout está pronto, é hora de adicionar widgets ao aplicativo. O Shiny fornece vários elementos de entrada e saída do usuário para interação com o usuário. Vamos discutir algumas funções de entrada e saída.
Funções de entrada brilhantes
Cada widget de entrada tem um rótulo, Id, outros parâmetros como escolha, valor, selecionado, mínimo, máximo, etc.
selectInput ()
- cria um elemento HTML suspenso.
selectInput ('selecionar', h3 ('caixa de seleção'), escolhas = lista ('Escolha 1' = 1, 'Escolha 2' = 2, 'Escolha 3' = 3), selecionado = 1)
numericInput ()
- área de entrada para digitar um número ou texto.
dateInput ('num', 'Data de entrada', valor = '2014-01-01') numericInput ('num', 'Entrada numérica', valor = 1) textInput ('num', 'Entrada numérica', valor = ' Digite o texto ... ')
botões do rádio()
- criar botões de rádio para entrada do usuário.
radioButtons ('radio', h3 ('Radio buttons'), choices = list ('Choice 1' = 1, 'Choice 2' = 2, 'Choice 3' = 3), selected = 1)
Funções Shiny Output
O Shiny oferece várias funções de saída que exibem R saídas, como plotagens, imagens, tabelas, etc, que exibem R objeto.
plotOutput ()
- exibe o objeto de plotagem R.
plotOutput'top_batsman ')
-
tableOutput ()
- exibe a saída como uma tabela.
tableOutput'player_table ')
2. Função do servidor
Servidor função ddefine a lógica do lado do servidor do aplicativo Shiny. Envolve a criação de funções e saídas que usam entradas para produzir vários tipos de saída. Cada cliente (navegador da web) chama a função do servidor quando carrega o aplicativo Shiny pela primeira vez. Cada saída armazena o valor de retorno das funções de renderização.
Essas funções capturam uma expressão R e fazem cálculos e pré-processamento na expressão. Use a função render * que corresponde à saída que você está definindo. Nós acessamos widgets de entradausando input $ [widget-id] . Essas variáveis de entrada são valores reativos. Quaisquer variáveis intermediárias criadas usando variáveis de entrada precisam se tornar reativas usando reativo ({}) . Acesse as variáveis usando ().
render * funções executam o cálculo dentro da função de servidor e armazenam nas variáveis de saída. A saída precisa ser salva com output $ [nome da variável de saída] . Cada render * função recebe um único argumento, ou seja, uma expressão R entre colchetes, {}.
3. Função ShinyApp
BrightApp ()
função é o coração deo aplicativo que chama CEBOLA e servidor funções para criar um aplicativo Shiny.
A imagem abaixo mostra o esboço do aplicativo Shiny.
Vamos passar para o próximo segmento no tutorial R Shiny para criar o primeiro aplicativo R Shiny.
o que é feijão em java
Crie um projeto da web do Shiny
Vamos para Arquivo e criar um Novo projeto em qualquer diretório -> Aplicativo da Web Shiny -> [Nome do diretório do aplicativo Shiny]. Digite o nome do diretório e clique Está bem .
Cada novo projeto de aplicativo Shiny conterá um exemplo de histograma para entender os fundamentos de um aplicativo brilhante. O aplicativo de histograma contém um controle deslizante seguido por um histograma que atualiza a saída para uma alteração no controle deslizante. Abaixo está a saída do aplicativo de histograma.
Para executar o aplicativo Shiny, clique no Executar aplicativo botão no canto superior direito do painel de origem. O aplicativo Shiny exibe um widget de controle deslizante que pega o número de caixas como entrada e renderiza o histograma de acordo com a entrada.
Agora que você entendeu a estrutura e como executar um aplicativo Shiny. Vamos prosseguir para criar nosso primeiro aplicativo Shiny.
Crie o primeiro aplicativo Shiny
Você pode criar um novo projeto ou continuar no mesmo diretório de trabalho. Neste tutorial do R Shiny, criaremos um aplicativo Shiny simples para mostrar estatísticas de IPL. O conjunto de dados usado no aplicativo pode ser baixado Aqui . O conjunto de dados compreende 2 arquivos, deliveryies.csv contém entregas de pontuação para cada bola (em cima) batedor, lançador, detalhes de corridas e match.csv arquivo contém detalhes da partida, como localização da partida, lance, local e detalhes do jogo. O aplicativo abaixo requer conhecimento básico de dplyr e para entender o tutorial abaixo.
Siga as etapas abaixo para criar seu primeiro aplicativo brilhante.
Passo 1 : Crie o esboço de um aplicativo Shiny.
Limpe o código existente, exceto para as definições de função no aplicativo . R Arquivo.
Passo 2 : Carregue bibliotecas e dados.
Nesta etapa, carregamos os pacotes e dados necessários. Em seguida, limpe e transforme os dados extraídos no formato necessário. Adicione o código abaixo antes CEBOLA e servidor função.
Código:
library (brilhante) library (tidyverse) # Loading Dataset --------------------------------------- ---------------- deliveries = read.csv ('C: UsersCherukuri_SindhuDownloadsdeliveries.csv', stringsAsFactors = FALSE) Matches = read.csv ('C: UsersCherukuri_SindhuDownloadsmatches.csv', stringsAsFactors = FALSE) # Cleaning Dataset --------------------------------------------- --------- nomes (correspondências) [1] = 'match_id' IPL = dplyr :: inner_join (correspondências, entregas)
Explicação :
As primeiras 2 linhas carregam tidyverse e Brilhante pacote. As próximas 2 linhas carregam entregas e correspondências de conjuntos de dados e armazenam em variáveisentregas
epartidas
. As últimas 2 linhas atualizam o nome da coluna dopartidas
conjunto de dados para realizar uma junção interna com oentregas
mesa. Nós armazenamos o resultado da junção noIPL
variável.
etapa 3 : Crie o layout do aplicativo Shiny .
Como discutido antes, o CEBOLA função define a aparência do aplicativo, widgets e objetos no aplicativo Shiny.Vamos discutir o mesmo em detalhes.
Código
cebola<- 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')) ) )))
o CEBOLA função contém um headerPanel () ou titlePanel () e seguido por tabsetPanel para definir várias guias no aplicativo. tabPanel () define os objetos para cada guia, respectivamente. Cada tabPanel () consiste em título e mainPanel (). mainPanel () cria um contêiner de largura 12, ou seja, janela completa e alinha os objetos de entrada e saída no centro.
Explicação
O aplicativo consiste em 2 guias: Temporada e Equipe ganha e pontos.
Temporada guia consiste em selectInput ( ) , botão de envio e uma mesa. season_year é usado para ler a entrada do lé de valores. tableOutput () exibe a saída da tabela calculada na função do servidor.A tabela player_table é exibida abaixo do botão, que é definido na função do servidor, que será discutida na próxima etapa. Equipe ganha e ganha pontos A guia exibe as vitórias e os pontos do time nos respectivos gráficos de barras. plotOutput () exibe as saídas retornadas do render * funções. Todas as funções de saída e entrada são incluídas em uma tag div para adicionar estilo embutido.
Agora que estamos familiarizados com a função ui, vamos prosseguir com a compreensão e uso da função de servidor em nosso tutorial R Shiny.
Etapa 4: adicione as instruções de função do servidor
o servidor função envolve a criação de funções e outputs que usam entradas do usuário para produzir vários tipos de saída. oa função do servidor é explicada passo a passo abaixo.
match_year = reativo ({match%>% filter (season == input $ season_year)}) playoff = reativo ({nth (sort (match (Match_year () $ match_id, decrescente = TRUE), 4)}) Matched_played = reativo ({Match_year ()%>% filter (match_id% group_by (team1)%>% resumir (contagem = n ())}) t2 = reativo ({match_played ()%>% group_by (team2)%>% resumir (contagem = n ( ))}) wl = reativo ({jogos_played ()%>% filtro (vencedor! = '')%>% group_by (vencedor)%>% resumir (no_of_wins = n ())}) wl1 = reativo ({jogos_played ( )%>% group_by (vencedor)%>% resumir (no_of_wins = n ())}) empatado = reativo ({match_played ()%>% filter (vencedor == '')%>% 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) })
O código acima filtra partidas jogadas antes dos playoffs a cada ano e armazena o resultado na variável match_played.player_table
A tabela contém estatísticas de partidas do time, ou seja, jogadas, vitórias e pontos. Variáveispartidas_jogadas
,player_table
,t1
,amarrado
, etc são todos intermediários valores reativos . Essas variáveis precisam ser acessadas usando () conforme mostrado no código acima.player_table
é exibido usando a função renderTable. Em seguida, crie a variável de saída para armazenar playertable.
output $ player_table = renderTable ({playertable ()})
Agora vamos criar gráficos de barras para mostrar as vitórias e os pontos marcados por cada equipe na temporada. O código a seguir exibe gráficos de barras usando ggplot. renderPlot () busca o objeto ggplot e armazena o resultado na variávelwins_bar_plot
.O código ggplot é autoexplicativo, envolve gráficos básicos e funções de mapeamento para editar legendas, rótulos e plotagem.
output $ wins_bar_plot = renderPlot ({ggplot (wl1 () [2: 9,], aes (vencedor, no_of_wins, preencher = vencedor)) + geom_bar (stat = 'identidade') + theme_classic () + xlab ('Equipes') + ylab ('Número de vitórias') + tema (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 = vencedor, (no_of_wins + 0,6), label = no_of_wins, size = 7))}) output $ points_bar_plot = renderPlot ({ggplot (playertable (), aes ( Times, Points, fill = Teams)) + geom_bar (stat = 'identidade', 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 (Times, (Points + 1), label = Points, size = 7))})
Etapa 5: execute o aplicativo Shiny.
Clique em Executar aplicativo. Com uma execução bem-sucedida, seu aplicativo Shiny terá a aparência abaixo. Qualquer erro ou avisos relacionados ao aplicativo, ele os exibirá no R Console.
Tab1 - Temporada
Tab2 - Equipe ganha e ganha pontos
Vamos ver comopara configurarConta Shinyapps.io para implantar seus aplicativos Shiny.
Configurar conta Shinyapps.io
Vamos para Shinyapps.io e faça login com suas informações, dê um nome de conta exclusivo para a página e salve-o. Depois de salvar com sucesso, você verá um procedimento detalhado para implantar aplicativos do R Console. Siga o procedimento abaixo para configurar sua conta no Rstudio.
Passo 1. Instale o rsconnect
install.packages ('rsconnect')
Passo 2. Autorizar conta
o rsconnect pacote deve ser autorizado para sua conta usando um token e segredo. Para fazer isso, copie todo o comando conforme mostrado abaixo em sua página do painel em R console. Depois de inserir o comando com sucesso no R, eu agora autorizo você a implantar aplicativos em sua conta Shinyapps.io.
decimal para binário em python
rsconnect :: setAccountInfo (nome = 'nome da conta', token = 'token', segredo = 'segredo')
Etapa 3. Implantar aplicativo
Use o código abaixo para implantar aplicativos Shiny.
biblioteca (rsconnect) rsconnect :: deployApp ('path / to / your / app')
Uma vez configurado, você está pronto para implantar seus aplicativos brilhantes.
Agora que você aprendeu como criar e executar aplicativos Shiny, implante o aplicativo que acabamos de criar no Shinyapps.io conforme explicado acima ou clique em publicar, que está presente no canto superior direito da janela do aplicativo Shiny.
eu esperoque este tutorial do R Shiny ajudou você a aprender como criar e executar um aplicativo Shiny. Divirta-se criando aplicativos da web bonitos e interativos usando R Shiny.
Se você deseja aprender Programação R e construir uma carreira colorida em Análise de Dados, confira nosso que vem com treinamento ao vivo conduzido por instrutor e experiência em projetos da vida real. Este treinamento o ajudará a entender a análise de dados e a obter domínio sobre o assunto.