Capítulo 4 Pensamento computacional
4.1 R
4.1.1 O que é R?
R é um programa de computador de código aberto com linguagem computacional direcionada para análise estatística.37,38
R version 4.5.3 (2026-03-11) está disponível gratuitamente em Comprehensive R Archive Network (CRAN).39
4.1.2 Por que usar R?
- R é o software de maior abrangência de métodos estatísticos, possui sintaxe que permite análises estatísticas reproduzíveis e está disponível gratuitamente no Comprehensive R Archive Network (CRAN).32,39
4.1.3 O que é R Markdown?
O R Markdown40 foi projetado especificamente para relatórios dinâmicos onde a análise é realizada em R e oferece uma flexibilidade incrível por meio de uma linguagem de marcação.32
O trabalho com R Markdown40 permite um fluxo de dados transparente, desde o conjunto de dados coletados até o manuscrito finalizado.41
Todos os aspectos do fluxo de dados podem ser incorporados em blocos de R script (chunk), exibindo tanto o R script quando o respectivo texto, tabelas e figuras formatadas no estilo científico de interesse.41
O uso combinado de R Markdown40 com sistemas de controle de versão e publicação automática permite a criação de fluxos completos de ciência reproduzível, integrando código, resultados, histórico de modificações e documentação em um único ambiente computacional.42
4.2 RStudio
4.2.1 O que é RStudio?
RStudio é um ambiente de desenvolvimento integrado (integrated development environment, IDE) desenvolvido visando a reprodutibilidade e a simplicidade para a criação e disseminação de conhecimento.38,47
O ambiente do RStudio é dividido em paineis:
Figura 4.1: Interface do RStudio. Fonte: https://docs.posit.co/ide/user/
RStudio apresenta um ambiente de edição com abas para acesso rápido a arquivos, comandos e resultados; histórico de comandos previamente utilizados; ferramentas para visualização de bancos de dados e elaboração de scripts e gráficos e tabelas.38,47
RStudio está disponível gratuitamente em Posit.
O pacote learnr48 fornece tutoriais interativos para RStudio.
4.3 Scripts
4.3.1 O que são R scripts?
“Scripts são dados”.33
Scripts permitem ao usuário se concentrar nas tarefas mais importantes da computação e utilizar pacotes ou bibliotecas para executar as funções mais básicas com maior eficiência.33
Um script é um arquivo de texto contendo (quase) os mesmos comandos que você digitaria na linha de comando do R. O “quase” refere-se ao fato de que se você estiver usando sink() para enviar a saída para um arquivo, você terá que incluir alguns comandos em print() para obter a mesma saída da linha de comando.REF?
Code
# Exemplo de R script
# Este é um comentário
# Esta é uma variável
variavel <- 3.14 # Atribui o valor 3.14 à variável
# Esta é uma função
f <- function(x) {
return(x^2) # Retorna o quadrado do valor de x
}
# Esta é uma chamada de função
resultado <- f(variavel) # Chama a função f com a variável como argumento
# Exibe o resultado da função
print(resultado) # Exibe o resultado na saída padrão
# Este é um vetor
vetor <- c(1, 2, 3, 4, 5) # Cria um vetor com os valores de 1 a 5
# Exibe o vetor
print(vetor) # Exibe o vetor na saída padrão
# Esta é uma matrix
matriz <- matrix(1:9, nrow = 3, ncol = 3) # Cria uma matriz 3x3 com os valores de 1 a 9
# Exibe a matriz
print(matriz) # Exibe a matriz na saída padrão
# Esta é uma lista
lista <- list(nome = "João",
idade = 30,
altura = 1.75) # Cria uma lista com nome, idade e altura
# Exibe a lista
print(lista) # Exibe a lista na saída padrão
# Este é um dataframe
dataframe <- data.frame(
nome = c("João", "Maria", "José"),
idade = c(30, 25, 40),
altura = c(1.75, 1.60, 1.80)
) # Cria um dataframe com nome, idade e altura
# Exibe o dataframe
print(dataframe) # Exibe o dataframe na saída padrão
# Este é um loop for
for (i in 1:5) {
print(i) # Exibe os valores de 1 a 5 na saída padrão
}
# Este é um loop while
j <- 1
while (j <= 5) {
print(j) # Exibe os valores de 1 a 5 na saída padrão
j <- j + 1 # Incrementa o valor de j em 1
}
# Este é um condicional if-else
k <- 3
if (k > 0) {
print("k é positivo") # Exibe "k é positivo" se k for maior que 0
} else if (k < 0) {
print("k é negativo") # Exibe "k é negativo" se k for menor que 0
} else {
print("k é zero") # Exibe "k é zero" se k for igual a 0
}
# Fim do exemplo de R script4.3.2 Quais são as melhores práticas na redação de scripts?
Use nomes consistentes para as variáveis.49
Defina os tipos de variáveis adequadamente no banco de dados.49
Defina constantes — isto é, variáveis de valor fixo — ao invés de digitar valores.49
Use e cite os pacotes disponíveis para suas análises.49
Teste o script antes de sua utilização.49
Conduza revisão por pares do código durante a redação (digitação em dupla).49
O pacote formatR51 fornece a função tidy_source para formatar um R script.
O pacote styler52 fornece a função style_file para formatar um R script.
O pacote lintr53 fornece a função lint para verificar a adesão de um script a um determinado estilo, identificando erros de sintaxe e possíveis problemas semânticos.
4.3.3 O que é controle de versão?
Controle de versão é o processo de registrar e rastrear alterações realizadas em arquivos ao longo do tempo, permitindo recuperar versões anteriores, documentar modificações e facilitar o trabalho colaborativo.42
Sistemas como Git permitem associar resultados científicos às versões específicas do código utilizadas para produzi-los, aumentando a transparência e a rastreabilidade das análises.42
O uso de controle de versão reduz erros relacionados à duplicação de arquivos e versões manuais de scripts, como arquivos denominados “final_v2_agora_sim.R”.42
4.4 Pacotes
4.4.1 O que são pacotes?
Pacotes são conjuntos de scripts programados pela comunidade e compartilhados para uso público.38
Os pacotes ficam armazenados no Comprehensive R Archive Network (CRAN) e podem ser instalados diretamente no RStudio.38,39
Na mais recente atualização deste livro, o [Comprehensive R Archive Network (CRAN) possui 402101 pacotes disponíveis.38,39
Os pacotes disponíveis podem ser encontrados em R PACKAGES DOCUMENTATION.54
O pacote utils55 fornece a função install.packages para instalar os pacotes no computador.
O pacote utils55 fornece a função installed.packages para listar os pacotes instalados no computador.
O pacote utils55 fornece a função update.packages para atualizar os pacotes instalados no computador.
O pacote roxygen256 fornece a função roxygenize para criar arquivos .Rd para documentar pacotes.
4.5 Manuscritos reproduzíveis
4.5.1 O que são manuscritos reproduzíveis?
- Manuscritos reproduzíveis permitem a produção de um manuscrito completo a partir da integração do banco de dados da(s) amostra(s), do(s) script(s) de análise estatística (incluindo comentários para sua interpretação), dos pacotes ou bibliotecas utilizados, das fontes e referências bibliográficas citadas, além dos demais elementos textuais (tabelas, gráficos).33
4.5.2 Por que usar manuscritos reproduzíveis?
No processo tradicional de redação científica há muitas etapas de copiar e colar não reproduzíveis envolvidas. Documentos dinâmicos combinam uma ferramenta de processamento de texto com o R script que produz o texto/tabela/figura a ser incorporado no manuscrito.32
Ao trabalhar com relatórios dinâmicos, é possível extrair o mesmo script usado para análise estatística. Os documentos podem ser compilados em vários formatos de saída e salvos como DOCX, PPTX e PDF.32
Muitos erros de análise poderiam ser evitados com a adoção de melhores práticas de programação em manuscritos reproduzíveis.57
O pacote rmarkdown40 fornece as funções render para criar manuscritos reproduzíveis a partir de arquivos .Rmd.
O pacote officedown58 fornece as funções rdocx_document e rpptx_document para criar arquivos DOCX e PPTX, respectivamente, com o conteúdo criado no manuscrito reprodutível.
O pacote bookdown59 fornece as funções gitbook, pdf_book, epub_book e html_document2 para criar documentos reproduzíveis em diversos formatos (Git, PDF, EPUB e HTML, respectivamente).
4.5.3 Como manuscritos reproduzíveis contribuem para a ciência?
- O compartilhamento de bancos de dados e seus scripts de análise estatística permitem a adoção de práticas reproduzíveis, tais como a reanálise dos dados.60
O pacote projects61 fornece a função setup_projects para criar um projeto com arquivos organizados em diretórios.
O pacote rmarkdown40 fornece a função render para criar manuscritos reproduzíveis a partir de arquivos .Rmd.
O pacote bookdown59 fornece as funções gitbook, pdf_book, epub_book e html_document2 para criar documentos reproduzíveis em diversos formatos (Git, PDF, EPUB e HTML, respectivamente).
4.6 Websites reproduzíveis para projetos científicos
4.6.1 O que são websites reproduzíveis para projetos científicos?
Projetos científicos reproduzíveis podem ser disponibilizados em websites navegáveis contendo resultados, figuras, scripts e histórico de versões.42
O uso de websites estáticos facilita o compartilhamento de análises com colaboradores e leitores sem necessidade de acesso direto ao ambiente computacional original.42
Ferramentas integradas com GitHub e GitLab permitem publicar automaticamente resultados reproduzíveis na internet.42
4.7 Aplicativos Shiny
4.7.1 O que são Shiny Apps?
Shiny Apps são aplicativos web interativos desenvolvidos com a linguagem R, que permitem a criação de interfaces gráficas para análise, visualização e exploração de dados diretamente em um navegador de internet.62
Em um Shiny App, os usuários podem interagir com os dados por meio de menus, botões, seletores e gráficos interativos, possibilitando modificar parâmetros de análise e visualizar resultados em tempo real.62
O funcionamento de um aplicativo Shiny baseia-se no conceito de reatividade, no qual alterações nas entradas do usuário atualizam automaticamente os resultados exibidos na interface do aplicativo.62
Os aplicativos podem ser utilizados para exploração de dados, construção de dashboards, visualização científica e desenvolvimento de ferramentas analíticas interativas.62
Um aplicativo Shiny pode ser executado localmente no RStudio, hospedado em servidores Shiny ou disponibilizado na internet por serviços de hospedagem especializados, permitindo acesso a usuários sem conhecimento de programação.62
4.7.2 Quais são as boas práticas para desenvolver aplicativos Shiny reproduzíveis?
Aplicativos Shiny devem seguir princípios de reprodutibilidade científica, permitindo reutilização de dados, código e ambiente computacional.62
Tutoriais, exemplos e guias especializados auxiliam na compreensão do Shiny, especialmente do sistema de reatividade.62
O ambiente computacional deve ser configurado com R e pacotes atualizados, registrando dependências para garantir portabilidade.62
O controle de versão facilita o rastreamento de alterações e a reprodução do ambiente computacional.62
O desenvolvimento deve ser incremental, com documentação contínua e testes frequentes.62
Recomenda-se estruturar o aplicativo de forma modular, separando interface de usuário, servidor e funções auxiliares.62
O desempenho pode ser melhorado com pré-processamento e armazenamento em cache dos dados.62
Sempre que possível, os dados devem ser disponibilizados em repositórios com DOI.62
Código e dados devem incluir licenças apropriadas para garantir transparência e reutilização.62
Recomenda-se tornar código e dados citáveis por meio de instruções no README ou arquivos de citação.62
Os aplicativos podem ser publicados em serviços de hospedagem ou repositórios científicos para ampliar o acesso.62
4.8 Compartilhamento
4.8.1 Por que compartilhar scripts?
- Compartilhar o script — principalmente junto aos dados — pode facilitar a replicação direta do estudo, a detecção de eventuais erros de análise, a detecção de pesquisas fraudulentas.63
4.8.2 O que pode ser compartilhado?
Idealmente, todos os scripts, pacotes/bibliotecas e dados necessários para outros reproduzirem seus dados.50
Minimamente, partes importantes incluindo implementações de novos algoritmos e dados que permitam reproduzir um resultado importante.50
4.8.3 Como preparar scripts para compartilhamento?
Providencie a documentação sobre seu script (ex.: arquivo README).50
Inclua a versão dos pacotes usados no seu script por meio de um script inicial para instalação de pacotes (ex.: ‘instalar.R’).57
Documente em um arquivo README os arquivos disponíveis e os pré-requisitos necessários para executar o código (ex.: pacotes e respectivas versões).31
Liste as configurações (hardware e software) que foram usadas para rodar o código para ajudar na reprodução dos resultados.31
Use endereços de arquivos relativos.57
Crie links persistentes para versões do seu script.50
Defina uma semente para o gerador de números aleatórios em scripts com métodos computacionais que dependem da geração de números pseudoaleatórios.31
O pacote base64 fornece a função set.seed para especificar uma semente para reprodutibilidade de computações que envolvem números aleatórios.
Escolha uma licença apropriada para garantir os direitos de criação e como outros poderão usar seus scripts.50
Teste o script em uma nova sessão antes de compartilhar.57
Cite todos os pacotes relacionados à sua análise.65
O pacote grateful66 fornece a função cite_packages para citar os pacotes utilizados em um projeto R.
- Inclua a informação da sessão em que os scripts foram rodados.57
O pacote utils55 fornece a função sessionInfo para descrever as características do programa, pacotes e plataforma da sessão atual.
4.8.4 O que incluir no arquivo README?
Título do trabalho.31
Autores do trabalho.31
Principais responsáveis pela escrita do script e quaisquer outras pessoas que fizeram contribuições substanciais para o desenvolvimento do script.31
Endereço de e-mail do autor ou contribuidor a quem devem ser direcionadas dúvidas, comentários, sugestões e bugs sobre o script.31
Lista de configurações nas quais o script foi testado, tais com nome e versão do programa, pacotes e plataforma.31
4.9 Fluxos de trabalho
4.9.1 O que são fluxos de trabalho reproduzíveis?
Fluxos de trabalho reproduzíveis permitem rastrear todas as etapas da análise científica, desde a importação dos dados até a geração do manuscrito final.42
A integração entre scripts, controle de versão e documentação reduz erros manuais e facilita a colaboração entre pesquisadores.42
Ferramentas como Git, R Markdown e workflowr ajudam a organizar projetos científicos complexos de forma padronizada e transparente.42
Fluxos modernos de ciência reproduzível combinam programação literária, controle de versão, documentação automática e compartilhamento online dos resultados em ambientes integrados.42
O pacote workflowr67 fornece a função wflow_start para criar um diretório com os arquivos essenciais para um projeto.
Ferreira, Arthur de Sá. Ciência com R: Perguntas e respostas para pesquisadores e analistas de dados. Rio de Janeiro: 1a edição,