Markdown é uma linguagem de marcação, ou seja, não é uma linguagem de programação. Linguagens de marcação dizem como algo deve ser entendido, mas não têm capacidade de processamento e execução de funções.
Por exemplo, HTML é uma linguagem de marcação. Ela apenas diz como uma página web está estruturada, mas não executa nenhum processamento. O Markdown, da mesma forma, apenas informa como um documento está estruturado.
No entanto, a vantagem do Markdown é a sua simplicidade e a possibilidade de utilização de uma linguagem comum para a criação de vários tipos de documentos.
Por exemplo, um mesmo código Markdown pode ser convertido para HTML, LaTeX (gera pdf’s), docx etc.
Para isso, é necessário um conversor, que lê um código em Markdown e, considerando a escolha do output desejado, converte o arquivo para a linguagem desejada. Isto ficará mais claro com os exemplos.
RMarkdown é a possibilidade de executar-se scripts em R (além de outras linguagens) e incorporá-los a um arquivo Markdown (extensão .md). O pacote knitr executará “pedaços” (chunk) de códigos e gerará um arquivo .md com os códigos e seus resultados.
Na sequência, o pandoc, que é um conversor, converte-o para a linguagem desejada, gerando os arquivos nos formatos escolhidos (.html, .docx, .pdf, .odt) (http://rmarkdown.rstudio.com).
Reprodutibilidade. Isto é importante quando um estudo é realizado. Pode ser que em algum momento após a realização do seu estudo outro analista/pesquisador deseje replicá-lo. Um documento que une o código às explicações pode ser fundamental neste momento.
Compartilhamento de informação. É possível que você tenha aprendido a usar um novo pacote e ache que ele pode ser interessante para outros colegas. Com o RMarkdown, você poderá criar um documento com exemplos de uso do pacote, facilmente compartilhável.
Documentação de Rotinas. A criação de rotinas para a realização de tarefas repetitivas é cada vez mais comum. No entanto, é importante que haja uma boa documentação da rotina para que você ou outro colega possa entender e dar manutenção à rotina no futuro.
Relatórios parametrizados. O RMarkdown facilita a criação de relatórios, inclusive dashboards, em que a estrutura é padrão, mas os dados dependem de um parâmetro. Por exemplo, relatórios de balança comercial por unidade da federação (UF). No caso, a UF seria um parâmetro que variaria de relatório para relatório.
O YAML é o responsável pelas configurações dos documentos. Basicamente, estamos informando qual é o título do documento, a data de criação, o nome do autor e o tipo de output que desejamos.
No exemplo, está definido como output html_document. Caso quiséssemos um arquivo no formato Word (.docx), o output poderia ser modificado para word_document.
Cada formato possui um conjunto de opções disponíveis. Nesse caso, é importante consultar a página de cada formato disponível na documentação do RMarkdown.
Os Code Chunks são pedaços de código em R que podem ser executados para gerar resultados que serão incorporados ao documento.
Você pode inserir um chunk manualmente ou com o atalho CTRL + ALT + I.
É possível incluir uma série de opções relacionadas à execução do código. Falaremos destas opções mais adiante.
Cada seção pode ser criada com o Markdown digitando um único caractere ‘#’ no início de uma linha;
Exemplo:
# Seção
Para criar subseções basta adicionar dois caracteres “#”
## Subseção
Para criar subsubseções basta adicionar três caracteres “#”
### Subsubseção
Opção | LaTeX | Markdown | Resultado |
---|---|---|---|
Itálico | \it{texto} | *texto* ou _texto_ | texto |
Negrito | \bf{texto} | **texto** ou __texto__ | texto |
Negrito e itálico | \textbf{\textit{texto}} | ***texto*** ou ___texto___ | texto |
Texto riscado | \sout{texto} | ~~texto~~ |
Criando listas utilizando o sinal de menos (-):
- item 1
- item 2
- item 3
1. item * Item
* Subitens dentro do item 1 - Subitens dentro do item
* Subitens dentro do item 1 - Subitens dentro do item
1. Item
1. Ordenando dentro do item 1
2. Ordenado dentro do item 1
Teorema 1
: Descrição do Teorema 1
Descrição do Teorema 1
Proposição 1
: Descrição do Proposição 1
Descrição do Proposição 1
Definição 1
: Descrição do Definição 1
Descrição do Definição 1
|À esquerda | À direita | Centralizado |
|:-------------------|------------------:|:-------------:|
|Essa coluna foi |Essa coluna foi |Essa coluna foi|
|alinhada à esquerda |alinhada à direita |Centralizada |
Table: Título da Tabela
À esquerda | À direita | Centralizado |
---|---|---|
Essa coluna foi | Essa coluna foi | Essa coluna foi |
alinhada à esquerda | alinhada à direita | Centralizada |
Forma 1:site: <http://www.rstudio.com/products/rstudio/>
Forma 2:[Clique aqui para instalar!]
(http://www.rstudio.com/products/rstudio/)
Forma 1: site: http://www.rstudio.com/products/rstudio/
Forma 2: Clique aqui para instalar!
Usando o [bookdown][1] ou o [Galeria][2] ou o [R Markdown][3].
[1]: https://bookdown.org/yihui/rmarkdown/ "bookdown"
[2]: https://rmarkdown.rstudio.com/gallery.html "Galeria"
[3]: https://rmarkdown.rstudio.com/
Usando o bookdown ou o Galeria ou o R Markdown.
<a href="http://www.youtube.com/watch?feature=
player_embedded&v=COLOQUE_AQUI_O_ID_VIDEO_YOUTUBE
"target="_blank"><img src="http://img.youtube.com/vi/
COLOQUE_AQUI_O_ID_VIDEO_YOUTUBE/0.jpg"
alt="Texto da imagem" width="240"
height="180" border="10" /></a>
[](http://www.youtube.com/watch?v=
COLOQUE_AQUI_O_ID_VIDEO_YOUTUBE)
São os mesmos comandos utilizados no Latex.
$\bar{x} = \frac{ \displaystyle \sum_{i=1}^{n} x_i}{n}$
\(\bar{x} = \frac{ \displaystyle \sum_{i=1}^{n} x_i}{n}\)
$$\mbox{var}(x)=\frac{\displaystyle \sum_{i=1}^{n}
(x_i- \bar{x})^2}{n-1}$$
\[\mbox{var}(x) =\frac{\displaystyle\sum_{i=1}^{n}(x_i- \bar{x})^2}{n-1} \]
$$
\begin{aligned}
\bar{x} & = \frac{1}{N}\sum_{i=1}^{N}x_{i} \\
\widehat{\boldsymbol{\beta}} & = (\mathbf{X}^{T}
\mathbf{X})^{-1}\mathbf{X}^{T}\mathbf{y}
\end{aligned}
$$
\[ \begin{aligned} \bar{x} & = \frac{1}{N}\sum_{i=1}^{N}x_{i} \\ \widehat{\boldsymbol{\beta}} & = (\mathbf{X}^{T} \mathbf{X})^{-1}\mathbf{X}^{T}\mathbf{y} \end{aligned} \]
A HTML é a linguagem de marcação para construção de páginas web. Assim, se criarmos um documento e escolhermos como opção de output html_document, o resultado será uma página a ser aberta em browsers. Outros formatos do markdown, como flexdashboard e ioslides, também geram páginas html. Cada tipo de formato tem um conjunto de aspectos específicos. Abaixo listamos os principais para html:
A aparência e o estilo são definidos por um arquivo no formato css. Isso impõe uma dificuldade adicional para a formatação do documento. O Rmarkdown fornece alguns temas e pacotes que também podem fornecer documentos com alguma formatação de estilo.
Único formato que aceita htmlwidgets (o próprio nome indica isso).
Para a criação de PDFs pelo RMarkdown, utiliza-se o LaTeX (pronuncia-se: Lah-tech or Lay-tech), que é um sistema de preparação de documentos muito utilizado pela comunidade científica. Inicialmente, o RMarkdown abstrai para o usuário a necessidade de saber-se essa linguagem.
Entre as vantagens do LaTeX estão:
Numeração automática de seções (e os demais níveis) e de equações;
Criação automática de legendas com base em arquivos .bib;
Facilidade de referências cruzadas no documento.
É possível usar templates e, para gerar código em latex, é necessário ter alguma instalação TEX disponível.
A geração de word segue a geração dos demais formatos. No entanto, templates apenas funcionam para definir estilos que serão usados no documento.
Atualmente, devido a limitações do conversor (pandoc), é difícil ter-se total acesso à formatação do documento.