Capítulo 4 Pensamento computacional


4.1 Programas de computador


4.1.1 O que é R?

  • R é um programa de computador de código aberto com linguagem computacional direcionada para análise estatística.24,25

  • R version 4.5.0 (2025-04-11) está disponível gratuitamente em Comprehensive R Archive Network (CRAN).26


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).23,26


4.1.3 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.25,27

  • O ambiente do RStudio é dividido em paineis:

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

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

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

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


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

Figura 4.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.25,27

  • RStudio está disponível gratuitamente em Posit.



4.1.4 Que programas de computador podem ser usados para análise estatística com R?



4.2 Scripts computacionais


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


4.3 Pacotes


4.3.1 O que são pacotes?

  • Pacotes são conjuntos de scripts programados pela comunidade e compartilhados para uso público.25

  • Os pacotes ficam armazenados no Comprehensive R Archive Network (CRAN) e podem ser instalados diretamente no RStudio.25,26

  • Na mais recente atualização deste livro, o [Comprehensive R Archive Network (CRAN) possui 380511 pacotes disponíveis.25,26

  • Os pacotes disponíveis podem ser encontrados em R PACKAGES DOCUMENTATION.34







4.3.2 Quais práticas são recomendadas na redação de scripts?

  • Use nomes consistentes para as variáveis.36

  • Defina os tipos de variáveis adequadamente no banco de dados.36

  • Defina constantes - isto é, variáveis de valor fixo - ao invés de digitar valores.36

  • Use e cite os pacotes disponíveis para suas análises.36

  • Controle as versões do script.36,37

  • Teste o script antes de sua utilização.36

  • Conduza revisão por pares do código durante a redação (digitação em dupla).36





4.4 Aplicativos Shiny


4.4.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?


4.5 Manuscritos reproduzíveis


4.5.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.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.23

  • 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.23

  • Muitos erros de análise poderiam ser evitados com a adoção de boas práticas de programação em manuscritos reproduzíveis.41





4.5.3 O que é RMarkdown?

  • RMarkdown42 é uma ferramenta que permite a integração de texto, código e saída em um único documento. O RMarkdown é uma extensão do Markdown, que é uma linguagem de marcação simples e fácil de aprender, que é usada para formatar texto. O RMarkdown 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. O RMarkdown é uma ferramenta poderosa para a criação de relatórios dinâmicos, que podem ser facilmente atualizados com novos dados ou análises. O RMarkdown é amplamente utilizado na comunidade científica para a criação de relatórios de pesquisa, artigos científicos, apresentações, livros, entre outros.

  • O trabalho com RMarkdown42 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.45

  • O RMarkdown42 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.23


4.5.4 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.46



4.5.5 Como contribuir para a reprodutibilidade?

  • Disponibilize publicamente os bancos de dados, respeitando as considerações éticas vigentes (ex.: autorização dos participantes e do Comitê de Ética em Pesquisa) e internacionalmente.23

  • Produza manuscritos reprodutíveis - manuscritos executáveis ou relatórios dinâmicos - que permitem a 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.33




4.6 Compartilhamento


4.6.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.48


4.6.2 O que pode ser compartilhado?

  • Idealmente, todos os scripts, pacotes/bibliotecas e dados necessários para outros reproduzirem seus dados.37

  • Minimamente, partes importantes incluindo implementações de novos algoritmos e dados que permitam reproduzir um resultado importante.37


4.6.3 Como preparar dados para compartilhamento?


4.6.4 Como preparar scripts para compartilhamento?

  • Providencie a documentação sobre seu script (ex.: arquivo README).37

  • Inclua a versão dos pacotes usados no seu script por meio de um script inicial para instalação de pacotes (ex.: ‘instalar.R’).41

  • 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.22

  • Use endereços de arquivos relativos.41

  • Crie links persistentes para versões do seu script.37

  • 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.22



  • Escolha uma licença apropriada para garantir os direitos de criação e como outros poderão usar seus scripts.37

  • Teste o script em uma nova sessão antes de compartilhar.41

  • Cite todos os pacotes relacionados à sua análise.50




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



4.6.5 O que incluir no arquivo README?

  • Título do trabalho.22

  • Autores do trabalho.22

  • Principais responsáveis pela escrita do script e quaisquer outras pessoas que fizeram contribuições substanciais para o desenvolvimento do script.22

  • 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.22

  • Lista de configurações nas quais o script foi testado, tais com nome e versão do programa, pacotes e plataforma.22



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

22.
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
23.
Mair P. Thou shalt be reproducible! A technology perspective. Frontiers in Psychology. 2016;7. doi:10.3389/fpsyg.2016.01079
24.
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
25.
Introduction to r and RStudio. Practical Machine Learning in R. April 2020:25-52. doi:10.1002/9781119591542.ch2
26.
R Core Team. The comprehensive r archive network. 2021. https://cran.r-project.org.
27.
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
28.
Aden-Buie G, Schloerke B, Allaire J, Rossell Hayes A. Learnr: Interactive Tutorials for r.; 2023. https://CRAN.R-project.org/package=learnr.
29.
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
30.
Ş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
31.
Selker R, Love J, Dropmann D. Jmv: The Jamovi Analyses.; 2023. https://CRAN.R-project.org/package=jmv.
32.
Love J. Jmvconnect: Connect to the Jamovi Statistical Spreadsheet.; 2022. https://CRAN.R-project.org/package=jmvconnect.
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
34.
All r CRAN packages [full list]. 2025. https://r-packages.io/packages. Accessed February 11, 2025.
35.
R Core Team. R: A language and environment for statistical computing. 2023. https://www.R-project.org/.
36.
Schwab, Simon, Held, Leonhard. Statistical programming: Small mistakes, big impacts. Wiley-Blackwell Publishing, Inc. 2021. doi:10.5167/UZH-205154
37.
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
38.
Xie Y. formatR: Format r Code Automatically.; 2022. https://CRAN.R-project.org/package=formatR.
39.
Müller K, Walthert L. Styler: Non-Invasive Pretty Printing of r Code.; 2023. https://CRAN.R-project.org/package=styler.
40.
Hester J, Angly F, Hyde R, et al. Lintr: A Linter for r Code.; 2023. https://CRAN.R-project.org/package=lintr.
41.
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
42.
Allaire J, Xie Y, Dervieux C, et al. Rmarkdown: Dynamic Documents for r.; 2023. https://CRAN.R-project.org/package=rmarkdown.
43.
Gohel D, Ross N. Officedown: Enhanced r Markdown Format for Word and PowerPoint.; 2023. https://CRAN.R-project.org/package=officedown.
44.
Xie Y. Bookdown: Authoring books and technical documents with r markdown. 2023. https://github.com/rstudio/bookdown.
45.
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
46.
Ioannidis JPA. How to Make More Published Research True. PLoS Medicine. 2014;11(10):e1001747. doi:10.1371/journal.pmed.1001747
47.
Krieger N, Perzynski A, Dalton J. Projects: A Project Infrastructure for Researchers.; 2021. https://CRAN.R-project.org/package=projects.
48.
Schultze A, Tazare J. The role of programming code sharing in improving the transparency of medical research. BMJ. October 2023:p2402. doi:10.1136/bmj.p2402
49.
R Core Team. R: A Language and Environment for Statistical Computing. Vienna, Austria: R Foundation for Statistical Computing; 2023. https://www.R-project.org/.
50.
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
51.
Francisco Rodríguez-Sánchez, Connor P. Jackson, Shaurita D. Hutchins. Grateful: Facilitate citation of r packages. 2023. https://github.com/Pakillo/grateful.