Construindo Dashboards Interativos com R
17/06/2025
Conceitos importantes para entender o Shiny
O que é o Shiny?
Estrutura básica
Exemplo com prática usando ChatGPT
Disponilibização do app no shinyapps.io
Fonte: Allison Horst (@allison_horst).
Fonte: Elaborado pela autora.
Shiny é um pacote em R para criar dashboards interativos com R.
Melhor dos mundos para interatividade: podemos utilizar elementos que são interativos devido ao JS, e também podemos apresentar conteúdos interativos utilizando R.
Necessita de uma sessão de R para que seja aberto!
É possível fazer dashboards para usos científicos. Ex: Zootraits (dashboard e artigo)
Fonte: https://rstudio.com/shiny/
Dica: usar um snippet para criar a estrutura básica do app Shiny. Salve o arquivo com a extensão .R
.
Após salvar o arquivo, você pode clicar no botão “Run App” para que o app seja executado.
Obs: O app gerado por este código estará vazio!
Inputs: São os elementos que permitem ao usuário interagir com o app. Exemplo: botões, caixas de seleção, campos de texto.
Outputs: São os elementos que exibem informações ao usuário. Exemplo: gráficos, tabelas, textos.
Shiny Widget Gallery (inputs do pacote shiny
)
shinyWidgets (pacote shinyWidgets
)
**Prompt para criação de Shiny App em R:**
## Objetivo
Quero criar um aplicativo interativo usando Shiny em R. O objetivo principal do app é [descreva o objetivo principal do app, ex: visualizar dados de vendas, explorar dados demográficos, etc.].
## Dados
Os dados que serão utilizados são:
[descreva os dados, ex: um arquivo CSV com dados de vendas, uma base de dados SQL, etc.]
Eles podem ser importados com o seguinte caminho:
[...]
Esse é o resultado do `glimpse()` dos dados (copie e cole a saída aqui para melhor geração do código):
[...]
## Funcionalidades
Os dados devem ser filtrados e salvos em um objeto reativo, para que possam ser utilizados em diferentes partes do aplicativo (gráficos, tabelas, etc.). Esses filtros devem operar sobre os dados carregados inicialmente.
O aplicativo deve ter as seguintes funcionalidades:
> * Filtros para: [ex: selecionar intervalo de datas, categorias específicas, regiões, etc.]
> * Visualização dos dados em [ex: tabela interativa, gráficos, mapas, etc.]
> * Outputs adicionais como [ex: resumo estatístico, download de resultados, etc.]
Os filtros do tipo seleção de opções devem ter a opção de *select all/deselect all*, e campo de busca.
## Estrutura do App
A estrutura pode ter uma sidebar com os inputs e um painel principal com os outputs.
Muito importante: O app **deve utilizar explificamente a biblioteca `bslib` para o layout** e ser responsivo.
O `bslib` deve usar o tema ["minty"](https://rstudio.github.io/bslib/articles/theming/)
## Sobre o desenvolvimento
O aplicativo deve ser criado em um único arquivo `app.R`.
Por favor, escreva o código em R para este aplicativo utilizando o pacote `shiny`, adicionando comentários explicativos e seguindo as melhores práticas de desenvolvimento.
Utilize esses pacotes, de preferência:
- shinyWidgets: para botões e inputs personalizados
- reactable: para tabelas interativas
- leaflet: para mapas interativos
- ggplot2 + plotly: para visualização de dados
- tidyverse: para manipulação de dados. Obs: use o pipe nativo do R (`|>`)
Criar um token no shinyapps.io: account
-> Tokens
-> Add Token
Copiar o token gerado com Copy to clipboard
. Um código similar ao abaixo será copiado.
Executar o código copiado no R para configurar o token.
Publicar o app com o botão “Publish” no RStudio. Atenção ao dar o nome do app, pois ele fará parte da URL do app.
Livro Mastering Shiny - Hadley Wickham (em inglês)
Livro Programando em Shiny - William Amorim (em português)
Curso de Shiny - Curso-R + William Amorim (em português)
Na minha página pessoal, você encontra meus contatos, e também palestras (anteriores e futuras).
Slides feitos com Quarto. Você pode consultar o código aqui.
beamilz.com > talks and teaching > introdução ao Shiny