3  Livros de notas

3.1 O que são livros de notas?

Livros de notas (Notebooks) são documentis que nos permitem misturar código, o resultado da execução do código e texto, permitindo por em prática aquiali que se designa de programação literata. Estes documentos podem ser convertidos para vários formatos, como por exemplo: HTML, PDF, apresentações, documentos Words, livros, de entre outros.

Este tipo de documentos apareceram primeiro no Wolfram Mathematica, e mais tarde foram popularizados pelos livros de notas do Jupyter, anteriormente conhecidos como IPython e utilizados extensivamente em R como documentos R notebooks e R Markdown.

A mistura de código, o resultado da sua execução, equações e images, permitem criar uma poderosa narrativa de análise de dados, que detalha o que estamos a fazer e permite-nos explicar o porquê de o fazermos dessa forma.

Muitos destes livros de notas permitem a mistura de várias linguagens num mesmo documento, o que facilita a realização de tarefas que envolvem mais do que uma línguagem.

3.2 O que é o markdown?

Markdown é uma linguagem que permite anotar texto de forma, de uma forma em que as anotações sejam distintas do texto, mas que possam ser usadas para afetar o resultado final da exportação do texto para outros formatos. Existem muitas linguagens desta natureza, como por exemplo, o HTML ou LaTeX. Markdown foi criada por John Gruber para converter texto em documentos HTML. Foi criada para que os documentos fossem de fácil escrita e leitura. Para mais sobre o markdown veja aqui.

Este formato ganhou bastante popularidade e hoje é amplamente utilizado, existindo hoje várias variantes do Markdown flavors.

A sintaxe de markdown utilizado pelos documentos R Markdown e R Notebooks é descrita aqui.

3.3 O que é o R Markdown?

Pode encontrar documentação detalhada sobre o R Markdown no sítio R Markdown do RStudio.

O livro R Markdown: The Definitive Guide é um excelente recurso para aprofundar o conhecimento sobre o que pode fazer com estes documentos.

Documentos de R Markdown podem ser usados para cirar sítios (blogdown), or livros (bookdown), documentação (pkgdown), paineis de informação (flexdashboard), documentos interactivos, de entre muitos outros formatos.

Estas apresentações demonstram a flexibilidade e utilidade destes documentos:

3.4 Qual a diferença entre um documento R Markdown e R Notebooks?

Para converter um documento de R Markdown para um outro formato é necessário processar o documento (knit), e durante esse processamento todo o código é executado num ambiente separado do actual ambiente que está a ser usado.

Quando se usa um livro de notas do R (R notebook), é possível pré-visualizar o documento HTML sem ser necessário o pré-processamento. Sempre que se grava o documento, o ficheiro HTML que está associado será actualizado, mas o códio não será executado novamente, apenas será apresentado o resultado da execução das partes do código (code chunks) previamente executadas.

É bastante fácil passar de um documento R Markdown para um R Notebook e vice-versa. Se o ponto de partida é um documento R Notebook é necessário mudar o cabeçalho de:

---
output: html_notebook
---

para:

---
output: html_document
---

A sintaxe de formatação de ambos os formatos destes documentos é a mesma.

A apresentação abaixo, apresenta e descreve os livros de notas do R (R Notebooks) em detalhe:

3.5 Quarto

Quarto é uma ferramenta da linha de comando e ainda um formato de livro de notas que é capaz de converter livros de notas em diferentes formatos: PDF, HTML, MS Word, apresentações e muitos outros formatos.

Quarto não depende do R e pode ser utilizado por várias outras linguagens, como por exemplo: Python, Julia e Observable.

O Quarto pode processar livros de nota em formato R Markdown, na maior parte das vezes, sem qualquer modificação, pelo que permite uma transição fácil para este novo formato. As repostas a perguntas frequents para utilizadores do R Markdown explicam as diferenças entre os formatos e ainda quais os planos para o futuro do R Markdown.

Para além do guia oficial do Quarto e da referência de Quarto, o sítio awesome-quarto proporciona uma lista de palestras, ferramentas exmplos e artigos sobre o Quarto, que são um excelente recursos para aprender mais sobre Quarto.

As funcionalidades base do Quarto podem ser extendidas através de filtros e extensões.

O livro R for Data Science tem um capítulo com uma breve introdução ao Quarto, e o sítio A Quarto tip a day é também um excelente recurso para se aprender mais sobre o Quarto.

Os vídeos abaixo são uma boa introdução ao Quarto: