Você está na página 1de 5

Dashboards e aplicativos web com R

João Flávio
31 de dezembro de 2018

Objetivos do curso:
O curso aborda a construção de dashboards e aplicativos web através da linguagem estatística R utilizando
os pacotes flexdashboard e shiny. Dashboards são painéis que apresentam métricas e indicadores, geralmente
em forma de gráficos, que sejam relevantes para auxiliar na gestão e uso da informação. Um aplicativo web é
um programa de computador que utiliza web browser (navegador web) para executar tarefas.
Ao final do curso o aluno estará apto a desenvolver dashboards e aplicativos web interativos, utilizando R.

Público alvo:
Alunos com conhecimentos básicos em estatística e linguagem estatística R. Desejado que o aluno tenha
cursado Introdução ao R e Introdução de Estatística
Conteúdo Programático:

Introdução
1. Dashboard
2. Flexdashboard
3. Shiny
Shiny é um pacote R que permite a criação de aplicativos (apps) web interativos através do R.

Flexdashboard:
1. Instalação
Instalamos o pacote flexdashboard através da linha de comando no R como segue:
install.packages("flexdashboard")

2. Layout
3. Componentes
4. Dimensionamento
5. Múltiplas páginas
6. Compartilhamento

1
Shiny
1. Instalação
Considerando que tenha o R instalado em seu computador. Caso ainda não possua o pacote shiny instalado,
utilize o segunte comando para instalar o pacote shiny:
install.packages("shiny")

Certifique-se que está conectado à internet.


Para carregarmos o pacote shiny usamos o seguinte comando:
library(shiny)

2. Estrutura básica
A estrutura básica de um aplicativo Shiny consiste da definição de dois objetos: ui e server.
Defimos um objeto “ui” (interface do usuário) que será a forma como a aplicação se apresenta visualmente ao
usuário
ui <- fluidPage(
)

No exemplo foi utilizado o layout fluidPage, existem outros tais como: navbarPage, dashboardPage. Porém
neste curso nos restringiremos ao layout fluidPage.
Definimos um objeto “server” que recebera as entradas do usuario realizadas no objeto “ui”, em server
realizamos as execuções necessárias para obter a saída desejada e a retornamos para o objeto “ui” para que
seja apresentado ao usuário
server <- function(input, output) {
}

Executamos o aplicativo com a aplicação da função shinyApp e os objetos ui e server como parâmetros
shinyApp(ui = ui, server = server)

Shiny applications not supported in static R Markdown documents

Exemplo

A seguir, para exemplificar, apresentamos o arquivo R referente a um aplicativo Shiny. Este exemplo plota um
histograma de um conjunto de dados simulados que seguem uma distribuição normal, em que os parâmetros:
tamanho da amostra, média e variância, são interativos com entrada a partir de uma barra deslizante, isto é, os
usuários podem alterar os valores dos parâmetros a barra deslizante e o aplicativo responderá imediatamente
à entrada deles.
# Define UI para aplicação que plota um histograma
ui <- fluidPage(

# Título da aplicação
titlePanel("Distribuição normal"),

# Barra lateral com entrada deslizante (sliderInput) para tamanho, média e variância
sidebarLayout(

sidebarPanel(
sliderInput("n",

2
"Tamanho:",
min = 1,
max = 1000,
value = 100),
sliderInput("media",
"Média:",
min = -10,
max = 10,
value = 0),
sliderInput("variancia",
"Variância:",
min = 0.1,
max = 100,
value = 1)
),

# Mostra o gráfico gerado pela distribuição


mainPanel(
plotOutput("distPlot")
)
)
)

# Define a programação R do servidor necessária para plotar um histograma


server <- function(input, output) {

output$distPlot <- renderPlot({


# Gerar os dados
x <- rnorm(n = input$n,
mean = input$media,
sd = sqrt(input$variancia) )
# Plota o histrograma dos dados gerados com os parâmetros especificados
hist(x)
})
}

# Executa a aplicação
shinyApp(ui = ui, server = server)

Shiny applications not supported in static R Markdown documents

Outros exemplos

O pacote shiny
O pacote Shiny tem onze exemplos internos que demonstram como o Shiny funciona. Cada exemplo é um
aplicativo Shiny autocontido. Para acessá-los basta carregara biblioteca shiny e executar a função runExample
contendo o nome do exemplo:
library(shiny)
runExample ("01_hello") # um histograma
runExample ("02_text") # tabelas e dataframes
runExample ("03_reactivity") # uma expressão reativa
runExample ("04_mpg") # variáveis globais

3
runExample ("05_sliders") # barras deslizantes
runExample ("06_tabsets") # painéis com guias
runExample ("07_widgets") # texto de ajuda e botões de envio
runExample ("08_html") # aplicativo shiny criado a partir de HTML
runExample ("09_upload") # assistente de upload de arquivo
runExample ("10_download") # assistente de download de arquivo
runExample ("11_timer") # um temporizador automatizado

PONTO DE CONTROLE DE APRENDIZADO ( SOLICITE AOS ALUNOS QUE EXE-


CUTEM OS COMANDOS ATÉ AQUI MOSTRADOS, OU SEJA, INSTALAÇÃO(ESTE
DEMORA ENTÃO DÊ UM JEITO DE DEIXAR PRONTO), CARREGAR E RODAR UM
EXEMPLO)

3. User side: inputs, outputs


# Define UI for application that draws a histogram
ui <- fluidPage(

# Application title
titlePanel("Título da aplicação"),

# Sidebar with a slider input for number of bins


sidebarLayout(

sidebarPanel(
"Painel Lateral"
),

# Show a plot of the generated distribution


mainPanel(
"Painel Principal"
)
)
)

# Define server logic required to draw a histogram


server <- function(input, output) {

# Run the application


shinyApp(ui = ui, server = server)

Shiny applications not supported in static R Markdown documents


4. Server side: funções render
5. Reatividade
6. Compartilhamento

4
Bibliografia:
[1] Beeley, C. (2013), Web Application Development with R Using Shiny, Packt Publishing.
[2] Chang, W., Cheng, J., Allaire, JJ, Xie, Y. & McPherson, J. (2015). shiny: Web Application Framework
for R. R package version 0.11.1. Retrieved Feb. 23, 2015. Available at CRAN.R-project.org/package=shiny.
[3] Borges, B., & Allaire, J. (2017). flexdashboard: R Markdown Format for Flexible Dashboards. R package
version,(5), 1.
[4] https://shiny.rstudio.com/tutorial/
[5] http://material.curso-r.com/shiny/

Você também pode gostar