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.1.4 Que programas de computador podem ser usados para análise estatística com R?



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:

    • Source/Script editor: para edição de R scripts.38

    • Console: para execução de códigos simples.38

    • Environments: para visualização de objetos criados durante a sessão de trabalho.38

    • Output: para visualização de gráficos criados durante a sessão de trabalho.38


Interface do RStudio. Fonte: https://docs.posit.co/ide/user/

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.



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 script


4.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

  • Controle as versões do script.49,50

  • 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





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








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





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






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



  • 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




  • Inclua a informação da sessão em que os scripts foram rodados.57



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




Citar como:
Ferreira, Arthur de Sá. Ciência com R: Perguntas e respostas para pesquisadores e analistas de dados. Rio de Janeiro: 1a edição,


Referências

31.
Hofner B, Schmid M, Edler L. Reproducible research in statistics: A review and guidelines for the Biometrical Journal. Biometrical Journal. 2015;58(2):416–427. doi:10.1002/bimj.201500156
32.
Mair P. Thou Shalt Be Reproducible! A Technology Perspective. Frontiers in Psychology. 2016;7. doi:10.3389/fpsyg.2016.01079
33.
Hinsen K. A data and code model for reproducible research and executable papers. Procedia Computer Science. 2011;4:579–588. doi:10.1016/j.procs.2011.04.061
37.
Ihaka R, Gentleman R. R: A Language for Data Analysis and Graphics. Journal of Computational and Graphical Statistics. 1996;5(3):299. doi:10.2307/1390807
38.
Nwanganga F, Chapple M. Introduction to R and RStudio. Em: Nwanganga F, Chapple M, org. Practical Machine Learning in R. John Wiley & Sons, Ltd; 2020:25–52. doi:10.1002/9781119591542.ch2
39.
R Core Team. The Comprehensive R Archive Network. 2021. https://cran.r-project.org.
40.
Allaire J, Xie Y, Dervieux C, et al. rmarkdown: Dynamic Documents for R.; 2023. https://CRAN.R-project.org/package=rmarkdown.
41.
Holmes DT, Mobini M, McCudden CR. Reproducible manuscript preparation with RMarkdown application to JMSACL and other Elsevier Journals. Journal of Mass Spectrometry and Advances in the Clinical Lab. 2021;22:8–16. doi:10.1016/j.jmsacl.2021.09.002
42.
Blischak JD, Carbonetto P, Stephens M. Creating and sharing reproducible research code the workflowr way. F1000Research. 2019;8:1749. doi:10.12688/f1000research.20843.1
43.
Love J, Selker R, Marsman M, et al. JASP: Graphical Statistical Software for Common Statistical Designs. Journal of Statistical Software. 2019;88(2). doi:10.18637/jss.v088.i02
44.
ŞAHİN M, AYBEK E. Jamovi: An Easy to Use Statistical Software for the Social Scientists. International Journal of Assessment Tools in Education. 2020;6(4):670–692. doi:10.21449/ijate.661803
45.
Selker R, Love J, Dropmann D. jmv: The jamovi Analyses.; 2023. https://CRAN.R-project.org/package=jmv.
46.
Love J. jmvconnect: Connect to the jamovi Statistical Spreadsheet.; 2022. https://CRAN.R-project.org/package=jmvconnect.
47.
Racine JS. RStudio: A Platform-Independent IDE for R and Sweave. Journal of Applied Econometrics. 2011;27(1):167–172. doi:10.1002/jae.1278
48.
Aden-Buie G, Schloerke B, Allaire J, Rossell Hayes A. learnr: Interactive Tutorials for R.; 2023. https://CRAN.R-project.org/package=learnr.
49.
Schwab, Simon, Held, Leonhard. Statistical programming: Small mistakes, big impacts. Wiley-Blackwell Publishing, Inc. 2021. doi:10.5167/UZH-205154
50.
Eglen SJ, Marwick B, Halchenko YO, et al. Toward standard practices for sharing computer code and programs in neuroscience. Nature Neuroscience. 2017;20(6):770–773. doi:10.1038/nn.4550
51.
Xie Y. formatR: Format R Code Automatically.; 2022. https://CRAN.R-project.org/package=formatR.
52.
Müller K, Walthert L. styler: Non-Invasive Pretty Printing of R Code.; 2023. https://CRAN.R-project.org/package=styler.
53.
Hester J, Angly F, Hyde R, et al. lintr: A Linter for R Code.; 2023. https://CRAN.R-project.org/package=lintr.
54.
All R CRAN packages [Full List]. 2025. https://r-packages.io/packages. Acesso em fevereiro 11, 2025.
55.
R Core Team. R: A Language and Environment for Statistical Computing. Vienna, Austria: R Foundation for Statistical Computing; 2023. https://www.R-project.org/.
56.
Wickham H, Danenberg P, Csárdi G, Eugster M. roxygen2: In-Line Documentation for R.; 2024. doi:10.32614/CRAN.package.roxygen2
57.
Trisovic A, Lau MK, Pasquier T, Crosas M. A large-scale study on research code quality and execution. Scientific Data. 2022;9(1). doi:10.1038/s41597-022-01143-6
58.
Gohel D, Ross N. officedown: Enhanced R Markdown Format for Word and PowerPoint.; 2023. https://CRAN.R-project.org/package=officedown.
59.
Xie Y. bookdown: Authoring Books and Technical Documents with R Markdown. Chapman; Hall/CRC; 2023. https://bookdown.org/yihui/bookdown/.
60.
Ioannidis JPA. How to Make More Published Research True. PLoS Medicine. 2014;11(10):e1001747. doi:10.1371/journal.pmed.1001747
61.
Krieger N, Perzynski A, Dalton J. projects: A Project Infrastructure for Researchers.; 2021. https://CRAN.R-project.org/package=projects.
62.
Brun J, Janée G, Curty RG. Ten quick tips for developing a reproducible Shiny application. Ouellette F, org. PLOS Computational Biology. 2025;21(10):e1013551. doi:10.1371/journal.pcbi.1013551
63.
Schultze A, Tazare J. The role of programming code sharing in improving the transparency of medical research. BMJ. outubro 2023:p2402. doi:10.1136/bmj.p2402
64.
R Core Team. R: A Language and Environment for Statistical Computing. Vienna, Austria: R Foundation for Statistical Computing; 2023. https://www.R-project.org/.
65.
Zhao Y, Xiao N, Anderson K, Zhang Y. Electronic common technical document submission with analysis using R. Clinical Trials. 2022;20(1):89–92. doi:10.1177/17407745221123244
66.
Francisco Rodríguez-Sánchez, Connor P. Jackson, Shaurita D. Hutchins. grateful: Facilitate citation of R packages.; 2023. https://github.com/Pakillo/grateful.
67.
Blischak JD, Carbonetto P, Stephens M. Creating and sharing reproducible research code the workflowr way [version 1; peer review: 3 approved]. V 8.; 2019. doi:10.12688/f1000research.20843.1