NT265/NE441 - Análise de dados e apresentação de gráficos usando a linguagem R
26 de novembro de 2025
renvQuartoShiny

https://github.com/mauriciovancine/workshop-quarto-git-github
Capacidade de recriar uma análise e obter os mesmos resultados com os mesmos dados e códigos

Por que reprodutibilidade importa?
Pilares
/data, /R, /output, /scriptsrenv: fixar versões dos pacotesREADME ou documento QuartoShiny para interação on-lineProjeto R (.Rproj)

Projeto R (.Rproj)
Diretórios e nomes de arquivos
Quem nunca…
Manejar projetos individualmente

Manejar projetos compartilhados

Manejar projetos no tempo
Principal ferramenta utilizada em grandes projetos

Cada vez mais necessário em colaborações

git

git

GitHub

GitHub
ATENÇÃO: dois conceitos!

ATENÇÃO: dois conceitos!

Perfil
Perfil
Settings: superior direito > foto do perfil > Settings
Settings: superior direito > foto do perfil > Settings
Settings
Repositório
Repositório
README.md
README.md
Criar repositório: Perfil > Repositories > New
Criar um repositório

Duas formas de trabalhar com o git e GitHub




git init: inicia o versionamento de um repositório local

Fork: cópia de um repositório para o seu repositório (GitHub)
Fork: cópia de um repositório para o seu repositório (GitHub)
Clonar: download de um repositório remoto (e.g. GitHub) para o seu repositório local (computador)

git clone: download de um repositório remoto (e.g. GitHub) para o seu repositório local (computador)




Criar um Projeto R com controle de versão
File > New Project > Version Control

Escolher clonar repositório do GitHub
Git



Comandos git para o fluxo de trabalho dos repositórios

Fluxo do versionamento

Fluxo do versionamento

Artwork by @allison_horst
Artwork by @allison_horst
ATENÇÃO!

Branch (ou ramo) é uma linha paralela de desenvolvimento
Funções:
main ou master)Importante!
git add e git commit) fazem parte da branchgit merge: mescla as branches em uma única branch
Artwork by @allison_horst
git push: envia suas alterações (commits) feitas localmente para o repositório remoto (GitHub)
git pull: busca atualizações do repositório remoto e as traz para o repositório local, alterando a branch atual
Pull Request: solicita que o repositório remoto original (GitHub) aceite (pull - ‘puxe’) as alterações realizadas do fork
Simplificado
Completo
Agradecimento à Beatriz Milz pelas figuras surrupiadas (eu pedi…)
Git Panel
Git Panel - Detalhes
Git Panel - Branches
Git Panel - Diff - Changes: Revisar mudanças
Git Panel - Diff - History: Histórico de mudanças
Git pane - Staged
Git pane - Staged e File status

Git pane - Commit
Git pane - Commit
Git pane - Push e Pull
Temos que especificar os pacotes necessários, suas versões e os repositórios nos quais eles estão acessíveis
Biblioteca vs pacote
[1] "/home/mude/R/x86_64-pc-linux-gnu-library/4.5"
[2] "/usr/local/lib/R/site-library"
[3] "/usr/lib/R/site-library"
[4] "/usr/lib/R/library"
Gerenciamento de pacotes
renv.lockPor que usar renv?
Funções
| Função | Descrição |
|---|---|
init() |
Inicializa renv em um projeto |
status() |
Verifica consistências entre o lockfile e a biblioteca do projeto |
snapshot() |
Registra o estado atual da biblioteca do projeto no lockfile |
restore() |
Restaura a biblioteca do projeto a partir de um lockfile |
install() |
Instala pacotes na biblioteca do projeto |
remove() |
Remove pacotes da biblioteca do projeto |
deactivate() |
Desativa temporariamente renv para o projeto |
activate() |
(Re)ativa renv no projeto |
Workflow
Sistema de bibliotecas

R behaviour
renvArquivos e diretório
.Rprofile: arquivo de perfil do projeto do RStudiorenv/: diretório que armazena as versões dos pacotesrenv.lock: arquivo com as versões de cada pacote para reconstruir o ambiente.
├── .Rprofile # Activate renv on project opening
│
├── renv/
│ ├── .gitignore # Ignore large renv files (e.g. packages)
│ ├── activate.R # R script to launch renv
│ ├── library/ # R packages
│ └── settings.dcf # renv settings
│
└── renv.lock
Fluxo de uso
Colaborando com renv
renv.lockrenv no projetorenv.lock serão instalados na biblioteca do projetoRecomendações
renv no final do projeto para congelar seu ambiente de pacotes e depois compartilhar o renv.lockrenv/ ao .gitignorerenv.lock
Artwork by @allison_horst
Documentação de pesquisa
Registro sistemático, claro e organizado das etapas de um projeto científico, desde o planejamento até a publicação
Garante que o trabalho possa ser entendido, verificado e reproduzido por outros pesquisadores
Escrita científica
Programação Literária
Programação literária é um paradigma de programação introduzido em 1984 por Donald Knuth (LaTeX), no qual um programa de computador é apresentado como uma explicação de como ele funciona em uma linguagem natural (e.g. inglês), intercalado (embutido) com trechos de macros e código-fonte tradicional, a partir dos quais um código-fonte compilável pode ser gerado.
Conceito inicial

Implementação moderna com Quarto

Descrição
Quarto é a nova geração do R Markdown

Software
Quarto no terminalMultiplas saídas
Usos
Comunicação com tomadores de decisão ou público mais amplo, com foco nas conclusões, não nos códigos das análises
Colaboração com outros cientistas de dados, interessados tanto nas conclusões quanto nos códigos
Ambiente para fazer ciência de dados, como um caderno de laboratório moderno, registro do que foi feito e dos pensamentos
Funcionamento
Artwork by @allison_horst
Funcionamento
Artwork by @allison_horst
Projeto Quarto
Arquivo Quarto (.qmd)
Arquivo Quarto (.qmd)
Arquivo Quarto (.qmd) - Source editor
Arquivo Quarto (.qmd) - Visual editor
Arquivo Quarto (.qmd) - Renderizar
Arquivo Quarto (.qmd) - Anatomia

.qmd) onde são inseridas as configurações do documento (formatação, data, título, autor etc.), delimitado por --- e ---```{r} e ```Arquivo Quarto (.qmd) - Anatomia

---
title: "Hello, Penguins"
format: html
execute:
echo: false
---
## Meet the penguins
The __penguins__ data contains size measurements for
penguins from three islands in the Palmer Archipelago,
Antarctica.
The _three_ species of penguins have quite distinct
distributions of physical dimensions (@fig-penguins).
# ```{r}
#| label: fig-penguins
#| fig-cap: "Dimensions of penguins across three species."
#| warning: false
library(tidyverse, quietly = TRUE)
library(palmerpenguins)
penguins |>
ggplot(aes(x = flipper_length_mm, y = bill_length_mm)) +
geom_point(aes(color = species)) +
scale_color_manual(
values = c("darkorange", "purple", "cyan4")) +
theme_minimal()
# ```Arquivo Quarto (.qmd) - Anatomia
---
title: "Hello, Penguins"
format: html
execute:
echo: false
---
## Meet the penguins
The __penguins__ data contains size measurements for
penguins from three islands in the Palmer Archipelago,
Antarctica.
The _three_ species of penguins have quite distinct
distributions of physical dimensions (@fig-penguins).
#| label: fig-penguins
#| fig-cap: "Dimensions of penguins across three species."
#| warning: false
library(tidyverse, quietly = TRUE)
library(palmerpenguins)
penguins |>
ggplot(aes(x = flipper_length_mm, y = bill_length_mm)) +
geom_point(aes(color = species)) +
scale_color_manual(
values = c("darkorange", "purple", "cyan4")) +
theme_minimal()
Arquivo Quarto (.qmd) - YAML - Formato
HTML
Word
Precisa instalar um pacote LaTeX
Arquivo Quarto (.qmd) - Texto - markdown
Markdown é um formato de texto simples projetado para ser fácil de escrever e, ainda mais importante, fácil de ler
Quarto é baseado no Pandoc e usa sua variação de markdown como sintaxe de documento
Arquivo Quarto (.qmd) - Texto - markdown
italic bold strikeout code
superscript2 subscript2
underline small caps
inline math: \(E = mc^{2}\)
Arquivo Quarto (.qmd) - Código - chunk
The _three_ species of penguins have quite distinct
distributions of physical dimensions (@fig-penguins).
````{r}
#| label: fig-penguins
#| fig-cap: "Dimensions of penguins across three species."
#| warning: false
library(tidyverse, quietly = TRUE)
library(palmerpenguins)
penguins |>
ggplot(aes(x = flipper_length_mm, y = bill_length_mm)) +
geom_point(aes(color = species)) +
scale_color_manual(
values = c("darkorange", "purple", "cyan4")) +
theme_minimal()
````
Arquivo Quarto (.qmd) - Código - chunk
Galeria
Quarto e GitHub
Podemos hospedar gratuitamente as saídas do Quarto de forma on-line no GitHub
Repositório > Settings > Pages > GitHub Pages
Descrição
Exemplo
Slides por Maurício Vancine, feitos com Quarto. Código disponível no GitHub.