1 + 1
[1] 2
Podemos produzir diferentes tipos de produtos utilizando arquivos Rmd: documentos, apresentações, sítios web, e painéis de gestão (conhecidos como dashboard na língua inglesa). Discorrerei sobre cada um deles, nas próximas seções.
O arquivo HTML é a saída mais comum quanto ao tipo de produto gerado em arquivos Rmd e, portanto, possui o maior número de funcionalidades disponíveis em comparação com os outros tipos de produtos possíveis (PDF e DOCX). Há diversas maneiras de produzir HTML distintos, a depender do pacote R utilizado e a finalidade do HTML. Começaremos pela maneira mais simples, utilizando a função rmarkdown::html_document()
do pacote R rmarkdown (Allaire et al. 2024):
---
title: "Análise exploratória de dados"
author: Ricardinho
date: 4 Jun 2024
output: html_document
---
Para acrescentar um sumário (ou tabela de conteúdo) em seu documento, use o argumento toc
e especifique a profundidade do sumário por meio do argumento toc_depth
:
---
title: "Análise exploratória de dados"
author: Ricardinho
date: 4 Jun 2024
output:
html_document:
toc: true
toc_depth: 3
---
Reparem que em metadados YAML, os espaços contam; isto é, a indentação é necessária!
A profundidade do sumário diz respeito ao grau do cabeçalho que se deseja atingir, isto é, você deseja que seu sumário liste os cabeçalhos até o segundo grau (== “##”)? Ou até o terceiro grau (==“###”)? Ou até o quarto grau (=“####”) ?
Para cada uma das respostas acima, teríamos o argumento toc_depth
com as seguintes respostas:
toc_depth: 2
toc_depth: 3
toc_depth: 4
Se não desejarmos o sumário, podemos usar o argumento toc: false
ou simplesmente não utilizá-lo.
Você pode numerar seções utilizando o argumento number_sections
, que habilita a numeração caso seja atribuído o valor true
a ele:
---
title: "Análise exploratória de dados"
author: Ricardinho
date: 4 Jun 2024
output:
html_document:
number_sections: true
---
Se você desejar numerar todas as seções, excluindo alguma(s), você pode fazer acrescentar o valor {-}
após o cabeçalho que você deseja não numerar. Por exemplo, suponha que a seção # Prefácio
não deva ser numerada por você. Você deve fazer então da seguinte maneira:
# Prefácio {-}
Fazer referência de figuras e tabelas no texto é um recurso muito útil em qualquer tipo de documento. Porém, este recurso só está disponível no pacote R bookdown (Xie 2025). Logo, será necessário mudar o valor atribuído ao argumento output
nos metadados do seu arquivo. Em vez de output: html_document
, usaremos output: bookdown::html_document2
. Veja abaixo:
---
title: "Análise exploratória de dados"
author: Ricardinho
date: 4 Jun 2024
output: bookdown::html_document2
---
Em seguida, devemos nos preocupar com a referência em si. Para isso, precisaremos dos itens abaixo:
A referência cruzada é feita por meio da seguinte notação:
\@ref(tipo:codigo)
em que tipo
se refere à figura fig
ou tabela tab
, e codigo
se refere ao codigo identificador do pedaço de código em que faremos a inserção da figura ou tabela.
Para ficar mais claro, vejam o exemplo abaixo:
---
title: "Análise exploratória de dados"
subtitle: "Aqui vai o subtítulo"
author: Ricardinho
date: 4 Jun 2024
# documentclass: book
output:
bookdown::pdf_document2:
toc: true
# includes:
# in_header: "header.tex"
# before_body: "before-body.tex"
# bookdown::word_document2:
# reference_docx: modelo.docx
# theme: cerulean
# fig_width: 12
# fig_height: 10
# lof: yes
# lot: yes
bibliography: minhaprimeiraref.bib
csl: associacao-brasileira-de-normas-tecnicas.csl
---
```{r, echo=FALSE, eval=TRUE, message=FALSE}
library("knitr")
<- 5+2
variavel1 <- variavel1 +2
variavel2
library("dplyr")
<- read.table("exemplinho.csv", sep = ",", header = TRUE)
exemplinho ```
\newpage
```{r, echo=FALSE, eval=FALSE}
1+1+1+1+1+2
```
```{r}
#| echo: true
#| eval: false
#| include: false
#| message: false
#| warning: false
5+2
```
# Introdução
## Subintrodução
`r variavel1`.
Aqui está a variável 1:
Aqui eu tenho um texto introdutório sobre minha análise exploratória de dados (AED) referentes a carros.
Vejam a figura \@ref(fig:fig1).
```{r fig1, fig.cap = "Aqui vai a legenda das figuras.", out.width="120%"}
plot(mtcars)
```
Olha a fotinha \@ref(fig:fotinha).
```{r fotinha, fig.cap= "Fotinha", out.width="50%"}
#| echo: false
::include_graphics("fotinha.JPG")
knitr```
```{r}
::image_read("../fotinha.JPG") |>
magick::image_scale("x700")
magick```
A tabela \@ref(tab:minha-tabela) expõe as primeiras 6 linhas do conjunto de dados 'mtcars'.
```{r minha-tabela}
::kable(head(mtcars), caption = "Aqui vai a legenda de tabelas, isto é, dentro do argumento 'caption' da função knitr::kable")
knitr```
# Material e métodos
Aqui eu discorro sobre os métodos utilizados para responder minhas perguntas.
[@Xieetal2020;@Yaoetal2024].
Uma lista de refs
## Localidades
## Análise de dados
```{r, echo=FALSE, warning=FALSE}
library("palmerpenguins")
library("ggplot2")
ggplot(penguins) +
geom_point(aes(x = bill_length_mm, y = bill_depth_mm, color = species)) +
theme_bw()
```
# Resultados
## Genética
### ddradSEQ
## Morfologia
`r nrow(mtcars)` observações e `r ncol(mtcars)` variáveis.
Reunimos um conjunto de
```{r}
<- dplyr::bind_rows(mtcars, mtcars)
mtcars2 ```
`r nrow(mtcars2)` observações e `r ncol(mtcars2)` variáveis para estimar o traço funcional do solo papapa.
Na série temporal do ano de 2019, houve
A tabela \@ref(tab:tab2) evidencia as seis primeiras linhas de nosso conjunto de dados.
```{r tab2}
#| echo: false
= read.table("exemplinho.csv", header = TRUE, sep = ",")
dados ::kable(dados, caption = "Seis primeiras linhas do conjunto de dados iris.")
knitr```
`r length(unique(dados$Species))` espécies diferentes.
Coletamos
`r glue::glue_collapse(x = sort(unique(dados$Species)), sep = ", ", last = " e ")`.
As espécies coletadas foram
`r 1+1`
| Nome | Altura |
|---------|--------|
| Lysne | `r 1+1`|
| Luciana | `r 1+2`|
| Rhaylla | 1,68 |
| José | 1,82 |
| Sylvio | 1,73 |
| Carlos | 1,75 |
| Ricardo | 1,79 |
: https://www.tablesgenerator.com/
# Referências
Para mais possibilidades, veja a seção Update the date automatically do livro Rmarkdown cookbook (Xie, Dervieux, e Riederer 2020).
Por meio do argumento theme
dentro do YAML, podemos controlar a aparência de seu arquivo HTML. Possíveis valores incluem:
default, bootstrap, cerulean, cosmo, darkly, flatly, journal, lumen, paper, readable, sandstone, simplex, spacelab, united, yeti
Teste cada uma dessas possibilidades e veja como fica a aparência de seu produto. Para testar, escreva dessa maneira no seu YAML, substituindo após theme:
por cada uma das possibilidades acima:
---
title: "Análise exploratória de dados"
author: Guguinha
output:
html_document:
theme: journal
---
Podemos mudar também a aparência dos pedaços de códigos em nossos produtos. Suponha que eu possua o código abaixo:
1 + 1
[1] 2
Como ele vai aparecer no produto final?
Nós controlamos essa variável por meio do argumento highlight
. As opções disponíevis incluem:
default, tango, pygments, kate, monochrome, espresso, zenburn, haddock, breezedark, textmate
Teste as opções acima em seu YAML escrevendo como abaixo:
---
title: "Análise exploratória de dados"
author: Guguinha
output:
html_document:
highlight: espresso
---
Os códigos escritos nas diversas linguagens possíveis de serem utilizadas em arquivos Rmd podem ser controlados quanto à exibição no produto final e também quanto aos efeitos dos códigos. Exemplificarei alguns dos argumentos mais utilizados:
echo
eval
include
message
warning
# echo
```{r echo = FALSE}
library("MASS")
```
# eval
```{r eval = FALSE}
plot(long, lat, data = coordenadas)
```
# include
```{r include = FALSE}
library("dplyr")
library("purrr")
library("vegan")
```
# message
```{r message = FALSE}
library("dplyr")
library("purrr")
library("vegan")
```
# warning
```{r warning = FALSE}
library("palmerpenguins")
library("ggplot2")
ggplot(penguins) +
geom_point(aes(x = bill_length_mm, y = bill_depth_mm, color = species)) +
theme_bw()
```
Podemos controlar como as figuras aparecerão em nossos produtos por meio dos argumentos YAML a seguir:
fig_width
e fig_height
controlam, respectivamente, a largura e altura da imagem;
fig_caption
controla se as figuras devem ser compiladas com ou sem legendas (valores possíveis true
ou false
)
dev
controla qual dispositivo deve compilar as figuras, isto é, se pdf
, png
, ou outros (padrão é o png
).
Vejam possibilidades abaixo e testem em seus arquivos:
---
title: "Análise exploratória de dados"
author: Guerreira Luaninha
date: 4 Jun 2024
output:
html_document:
fig_width: 7
fig_height: 6
fig_caption: true
---
Outra maneira de controlar a aparência das figuras é por meio de argumentos dentro dos pedaços de código. Os argumentos disponíveis são escritos de maneira parecida com os argumentos utilizados no YAML, porém diferem quanto à inserção de um ponto (.
) no lugar do subtraço (_
). As opções mais populares são:
fig.height
e fig.width
, que determinam a altura e a largura da figura em polegadas, respectivamente. Os valores devem ser numéricos. Exemplo: fig.width = 8
, fig.height = 4
.
fig.dim
que combina a largura e a altura da figura, respectivamente, na mesma função, também expressa em polegadas. Exemplo: fig.dim = c(8, 4)
é o mesmo que `fig.width = 8, fig.height = 4
.
fig.cap
, que determina a legenda da figura. Deve apresentar sempre o texto que se deseja colocar entre aspas. Exemplo: fig.cap = "Essa é a legenda de minha figura."
.
out.width
e out.height
, que expressa o tamanho da imagem no produto final, cujos valores são expressos em porcentagens, “50%”, “70%” etc. Exemplo: out.width = "50%"
, out.height = "80%"
.
Exemplos de aplicação desses argumentos são expressos abaixo:
# Usando fig.width e fig.height
```{r, fig.width = 12, fig.height = 10, fig.cap="Olha a legenda da figura"}
::include_graphics("fotinha.jpg")
knitr```
# out.width e out.height
```{r, out.width="50%", out.height = "50%"}
::include_graphics("fotinha.jpg")
knitr```
# fig.dim
```{r, fig.dim = c(12,10)}
::include_graphics("fotinha.jpg")
knitr```
Mais opções estão explicadas detalhadamente na seção Plots da página dedicada ao pacote knitr (Xie 2014).
O formato PDF possui opções não disponíveis para outros formatos, já que é o LaTeX que controla o produto final. Do que já vimos até então, as opções Acrescentar sumário, Numerar seções, Referência cruzada de figuras e tabelas e Controle de figuras também são válidas no PDF.