Capítulo 9 Pensamento computacional
9.1 R
9.1.1 O que é R?
R é um programa de computador de código aberto com linguagem computacional direcionada para análise estatística.72,73
R version 4.5.1 (2025-06-13) está disponível gratuitamente em Comprehensive R Archive Network (CRAN).74
9.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).47,74
9.1.3 O que é R Markdown?
R Markdown75 é uma ferramenta que permite a integração de texto, código e saída em um único documento.REF?
O R Markdown é uma extensão do Markdown, que é uma linguagem de marcação simples e fácil de aprender, que é usada para formatar texto.REF?
O R Markdown permite a inclusão de blocos de código R, Python, SQL, C++, entre outros, e a saída desses blocos de código é incorporada ao documento final.REF?
O R Markdown é uma ferramenta poderosa para a criação de relatórios dinâmicos, que podem ser facilmente atualizados com novos dados ou análises.REF?
O R Markdown é amplamente utilizado na comunidade científica para a criação de relatórios de pesquisa, artigos científicos, apresentações, livros, entre outros.REF?
O trabalho com RMarkdown75 permite um fluxo de dados totalmente transparente, desde o conjunto de dados coletados até o manuscrito finalizado. 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.76
O RMarkdown75 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.47
9.2 RStudio
9.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.73,81
O ambiente do RStudio é dividido em paineis:

Figura 9.1: Interface do RStudio. Fonte: https://docs.posit.co/ide/user/
As principais características do RStudio incluem 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.73,81
RStudio está disponível gratuitamente em Posit.
O pacote learnr82 fornece tutoriais interativos para RStudio.
9.3 Scripts
9.3.1 O que são R scripts?
“Scripts são dados”.48
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.48
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.
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 script
9.3.2 Quais são as boas práticas na redação de scripts?
Use nomes consistentes para as variáveis.83
Defina os tipos de variáveis adequadamente no banco de dados.83
Defina constantes - isto é, variáveis de valor fixo - ao invés de digitar valores.83
Use e cite os pacotes disponíveis para suas análises.83
Teste o script antes de sua utilização.83
Conduza revisão por pares do código durante a redação (digitação em dupla).83
O pacote formatR85 fornece a função tidy_source para formatar um R script.
O pacote styler86 fornece a função style_file para formatar um R script.
O pacote lintr87 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.
9.4 Pacotes
9.4.1 O que são pacotes?
Pacotes são conjuntos de scripts programados pela comunidade e compartilhados para uso público.73
Os pacotes ficam armazenados no Comprehensive R Archive Network (CRAN) e podem ser instalados diretamente no RStudio.73,74
Na mais recente atualização deste livro, o [Comprehensive R Archive Network (CRAN) possui 385271 pacotes disponíveis.73,74
Os pacotes disponíveis podem ser encontrados em R PACKAGES DOCUMENTATION.88
O pacote utils89 fornece a função install.packages para instalar os pacotes no computador.
O pacote utils89 fornece a função installed.packages para listar os pacotes instalados no computador.
O pacote utils89 fornece a função update.packages para atualizar os pacotes instalados no computador.
O pacote roxygen290 fornece a função roxygenize para criar arquivos .Rd para documentar pacotes.
9.5 Aplicativos
9.5.1 O que são Shiny Apps?
- Shiny Apps são aplicativos web interativos que permitem a criação de interfaces gráficas para visualização e análise de dados em tempo real, utilizando o R como backend.REF?
9.6 Manuscritos reproduzíveis
9.6.1 O que são manuscritos reproduzíveis?
- Manuscritos reproduzíveis - manuscritos executáveis ou relatórios dinâmicos - 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) - todos gerados dinamicamente.48
9.6.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.47
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.47
Muitos erros de análise poderiam ser evitados com a adoção de boas práticas de programação em manuscritos reproduzíveis.91
O pacote rmarkdown75 fornece as funções render para criar manuscritos reprodutíveis a partir de arquivos .Rmd.
O pacote officedown92 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 bookdown93 fornece as funções gitbook, pdf_book, epub_book e html_document2 para criar documentos reprodutíveis em diversos formatos (Git, PDF, EPUB e HTML, respectivamente).
9.6.3 Como manuscritos reprodutí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 reprodutíveis, tais como a reanálise dos dados.94
O pacote projects95 fornece a função setup_projects para criar um projeto com arquivos organizados em diretórios.
O pacote rmarkdown75 fornece a função render para criar manuscritos reprodutíveis a partir de arquivos .Rmd.
O pacote bookdown93 fornece as funções gitbook, pdf_book, epub_book e html_document2 para criar documentos reprodutíveis em diversos formatos (Git, PDF, EPUB e HTML, respectivamente).
9.7 Compartilhamento
9.7.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.96
9.7.2 O que pode ser compartilhado?
Idealmente, todos os scripts, pacotes/bibliotecas e dados necessários para outros reproduzirem seus dados.84
Minimamente, partes importantes incluindo implementações de novos algoritmos e dados que permitam reproduzir um resultado importante.84
9.7.4 Como preparar scripts para compartilhamento?
Providencie a documentação sobre seu script (ex.: arquivo README).84
Inclua a versão dos pacotes usados no seu script por meio de um script inicial para instalação de pacotes (ex.: ‘instalar.R’).91
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). Uma lista de configurações (hardware e software) que foram usadas para rodar o código pode ajudar na reprodução dos resultados.46
Use endereços de arquivos relativos.91
Crie links persistentes para versões do seu script.84
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.46
O pacote base97 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.84
Teste o script em uma nova sessão antes de compartilhar.91
Cite todos os pacotes relacionados à sua análise.98
O pacote grateful99 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.91
O pacote utils89 fornece a função sessionInfo para descrever as características do programa, pacotes e plataforma da sessão atual.
9.7.5 O que incluir no arquivo README?
Título do trabalho.46
Autores do trabalho.46
Principais responsáveis pela escrita do script e quaisquer outras pessoas que fizeram contribuições substanciais para o desenvolvimento do script.46
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.46
Lista de configurações nas quais o script foi testado, tais com nome e versão do programa, pacotes e plataforma.46
Ferreira, Arthur de Sá. Ciência com R: Perguntas e respostas para pesquisadores e analistas de dados. Rio de Janeiro: 1a edição,