Cantinho do R

Um documento em RMarkdown para quem quer aprender RMarkdown ;)

Um tutorial para os iniciantes

Por Marcos Vital, com a ajuda da turminha do LEQ-UFAL

24-maio-2018

Este material foi construído com a ajuda de muitas pessoas que acreditam no LEQ e em Ciência Livre. Muito obrigado!

Para mais material, visite o Cantinho do R


 

Este documento é um tutorial básico de RMarkdown, feito com ele mesmo. ;)

Criamos este documento em um dos workshops do LEQ (um que teve problemas sérios de internet, por isso não conseguimos transmitir online e infelizmente o Youtube comeu o vídeo…).

O objetivo é que ele sirva como um guia visual de Markdown e de RMarkdown, para os iniciantes. ;)

Antes de começar, você vai precisar:

  • do R instalado;
  • do RStudio instalado, de preferência uma versão bem recente;
  • do pacote rmarkdown instalado (qualquer coisa execute install.packages("rmarkdown"))

Com tudo pronto, abra o RStudio, e no menu vá em File > New File > R Markdown

Quando abrir a janelinha, pode dar ok com a primeira opção (Document e formato HTML). Pode deixar sem título e sem autor se quiser. Ele vai abrir um documento com exemplos, que você pode usar para começar a aprender ou então simplesmente apagar. ;)

Quando quiser criar o documento, salve o script e clique no botão Knit na janelinha do script, para o RStudio executar e gerar o documento em html. Se você quiser, também pode gerar documentos em pdf ou mesmo para o Word - mas neste caso você terá que se preocupar com a paginação, o que pode dar um poquinho de trabalho… Pessoalmente, acho o html bem mais prático, pois dá para abrir em qualquer computador ou celular, e você não se preocupa com separação entre as páginas. ;) Ah, um aviso: para gerar pdf você vai precisar instalar mais coisas no computador, ok? O próprio RStudio dará alguns avisos sobre isso, e basta seguir as instruções. Mas vamos ao que interessa, né?

Sobre a organização deste tutorial:

Boa parte deste documento será organizado no formato do tipo “veja este código aqui” que se segue com um “ele gera isso aqui”. O ideal é você olhar aqui e depois criar a sua própria versão, para aprender fazendo.

Então bora lá!

 

O Básico do Markdown

 

Os títulos, itálico e negrito

Isso daqui, olha:

# Título 1

## Título 2

### Título 3

#### Título 4

##### Título 5

###### Título 6

*Itálico*

**Negrito**

###### Título 6

*Itálico*

**Negrito**

Sobre escrito: x^2^

Subescrito: y~1~

Cortado: ~~cortado~~

Vai ficar deste jeito assim:

Título 1

Título 2

Título 3

Título 4

Título 5
Título 6

Itálico

Negrito

Sobre escrito: x2

Subescrito: y1

Cortado: cortado

 

Como funciona o texto

Se você escrever uma coisa e der enter, ele faz tudo como se fosse um mesmo parágrafo…

Para ter um novo parágrafo, sempre salte uma linha.

Aliás, se você ter enter um monte de vezes, ele salta apenas uma linha!

Então isso daqui:

O que você escrever assim
não vai ficar em duas linhas

Então se precisar, sempre use uma linha em branco:

assim.




Se saltar várias linhas, dá no mesmo que saltar uma.

Fica assim:

O que você escrever assim não vai ficar em duas linhas

Então se precisar, sempre use uma linha em branco:

assim.

Se saltar várias linhas, dá no mesmo que saltar uma.

 

Listas, já ia me esquecendo delas!

Essas coisas aqui:

Lista com subitens:

- Primeira coisa
- Segunda coisa
    - Sub-item 1
    - Sub-item 2
- Terceira coisa


Lista ordenada (copiei e colei do exemplo):

1. Item 1
2. Item 2
3. Item 3
    + Item 3a
    + Item 3b

Vão ficar assim:

Lista com subitens:

  • Primeira coisa
  • Segunda coisa
    • Sub-item 1
    • Sub-item 2
  • Terceira coisa

Lista ordenada (copiei e colei do exemplo):

  1. Item 1
  2. Item 2
  3. Item 3
    • Item 3a
    • Item 3b

 

Organizando o texto

Essa paradinha daqui:

Se você quiser que mais de uma linha seja saltada, use uma barra seguida de um espaço, desse jeito:

\ 

E se você quiser uma linha horizontal, use um conjuntinho de três ou mais asteriscos:

***

Uma coisa legal, é usar isso para quebrar seções, tipo assim:

Aqui terminei uma seção.

\ 

***

\ 

E aqui começo uma nova.

Vai ficar deste jeitinho aqui:

Se você quiser que mais de uma linha seja saltada, use uma barra seguida de um espaço, desse jeito:

 

E se você quiser uma linha horizontal, use um conjuntinho de três ou mais asteriscos:


Uma coisa legal, é usar isso para quebrar seções, tipo assim:

Aqui terminei uma seção.

 


 

E aqui começo uma nova.

 


 

Imagens, links, citações

Estes codiguinhos daqui:

Visite o [Cantinho do R, o blog mais legal do mundo](https://cantinhodor.wordpress.com/)

Uma imagem (que é uma imagem do link, hahaha):

![](http://www.thatsnotcurrent.com/wp-content/uploads/2016/09/zelda_link_to_the_past_3ds_virtual_console_banner.png)

Fazendo uma citação (block quote):

> Nobody expects the Spanish Inquisition!!!

Vão gerar essas coisinhas de cá:

Visite o Cantinho do R, o blog mais legal do mundo

Uma imagem (que também é um link, hahaha):

Fazendo uma citação (block quote):

Nobody expects the Spanish Inquisition!!!

 

Ah, uma observação importante: eu inseri a imagem ali de cima usando um link da imagem do link (foi mal, não resisti…). Você também pode inserir a imagem usando algo salvo no seu computador, o que pode inclusive tornar as coisas mais rápidas, pois assim o RStudio não precisar buscar na internet. Basta colocar o endereço da imagem ali entre parêntes, tipo: (D:/Minha pasta de imagens/imagem.png)

Beleza?

 

Tabelas, se você tiver paciência…

Se você quiser, dá um trabalhinho, mas funciona. Então isso daqui, ó:

Vamos tentar criar uma tabela:

Coluna 1 | Coluna 2 | Coluna 3
:--- | ---: | :---:
Linha 1 | qualquer coisa | outra coisa
Linha 2 | blábláblá | outro bláblá
Linha 3 | sem ideias | sei lá

Vai ficar deste jeitinho daqui:

Vamos tentar criar uma tabela:

Coluna 1 Coluna 2 Coluna 3
Linha 1 qualquer coisa outra coisa
Linha 2 blábláblá outro bláblá
Linha 3 sem ideias sei lá

 


 

O não tão básico…

Algumas coisas de html podem ser usadas, deve ter um monte de possibilidades, por enquanto eu aprendi isso daqui:


Vamos alterar as cores do texto:

<span style="color:red"> este texto será vermelho </span> e o restante do texto vai continuar normal

<span style="background:yellow"> este texto ficará marcado em amarelo </span> e o resto, não vai não

Tentando mexer no tamanho da fonte:

<font size=10> Fonte gigante!!!! </font>

<font size=1> Fonte pequenininha </font>


Fonte normal

<font face=verdana> Mudando o tipo de fonte </font>

<font face=times> Mudando o tipo de fonte </font>

Agora vamos combinar um monte de coisa numa parada bem doida:

<font size=1 color=red face=times> Vendo no que dá isso aqui </font>

Toda essa parada vai ficar assim:

Vamos alterar as cores do texto:

este texto será vermelho e o restante do texto vai continuar normal

este texto ficará marcado em amarelo e o resto, não vai não

Tentando mexer no tamanho da fonte:

Fonte gigante!!!!

Fonte pequenininha

Fonte normal

Mudando o tipo de fonte

Mudando o tipo de fonte

Agora vamos combinar um monte de coisa numa parada bem doida:

Vendo no que dá isso aqui

 


 

Agora vamos falar de R!

A tecla de atalho para insetir um code chunck é ctrl + alt + i

Um chunck entende que tem que rodar r quando ele tem r entre chaves, por isso quando usamos a tecla de atalho ele já gera um chunck que começa com {r}.

Você pode usar a paradinha entre chaves para adicionar opções, o que é bem útil. Daqui a pouco vemos isso. Só para você ver aqui, o chunck tem essa cara aqui:

E aí, justamente o chunck da imagem acima, vai fazer isso daqui, ó:

data(iris)

summary(iris)
##   Sepal.Length    Sepal.Width     Petal.Length    Petal.Width   
##  Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100  
##  1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300  
##  Median :5.800   Median :3.000   Median :4.350   Median :1.300  
##  Mean   :5.843   Mean   :3.057   Mean   :3.758   Mean   :1.199  
##  3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100   3rd Qu.:1.800  
##  Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500  
##        Species  
##  setosa    :50  
##  versicolor:50  
##  virginica :50  
##                 
##                 
## 

Legal, né? Ele mostra o chunck e o resultado.

Se você quiser um chunck que não rode, você pode colocar o comecinho dele assim: {r, eval=FALSE}

E aí ele vai aparecer deste jeito daqui, ó:

data(iris)

summary(iris)

E também dá pra fazer o contrário! Neste novo chunck, que você não vai ver, vou começar com um {r, echo=F}, e no mais escrever a mesma coisa do chunck de cima. Aí, desta vez, ele vai fazer isso:

##   Sepal.Length    Sepal.Width     Petal.Length    Petal.Width   
##  Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100  
##  1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300  
##  Median :5.800   Median :3.000   Median :4.350   Median :1.300  
##  Mean   :5.843   Mean   :3.057   Mean   :3.758   Mean   :1.199  
##  3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100   3rd Qu.:1.800  
##  Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500  
##        Species  
##  setosa    :50  
##  versicolor:50  
##  virginica :50  
##                 
##                 
## 

Viu? Ele rodou, mas não apareceu.

 

Agora vamos brincar com tamanho e posição de figuras.

Figura tamanho normal (entre chaves ficou apenas {r} mesmo):

plot(iris$Sepal.Length~iris$Sepal.Width, las=1, pch=16, col=c("red4", "blue4", "green4")[iris$Species], xlab="Comprimento da sépala", ylab="Largura da sépala")

A mesma, tamanho grande, usando {r, fig.height=10, fig.width=10}:

plot(iris$Sepal.Length~iris$Sepal.Width, las=1, pch=16, col=c("red4", "blue4", "green4")[iris$Species], xlab="Comprimento da sépala", ylab="Largura da sépala")

De novo, mas pequeno, usando {r, fig.height=2, fig.width=2}:

plot(iris$Sepal.Length~iris$Sepal.Width, las=1, pch=16, col=c("red4", "blue4", "green4")[iris$Species], xlab="Comprimento da sépala", ylab="Largura da sépala")

Alinhando no centro, usando {r, fig.align=‘center’}:

plot(iris$Sepal.Length~iris$Sepal.Width, las=1, pch=16, col=c("red4", "blue4", "green4")[iris$Species], xlab="Comprimento da sépala", ylab="Largura da sépala")

Alinhando na direita, pequeno e com legenda, usando {r, fig.align=‘right’, fig.height=4, fig.width=4, fig.cap=“Legenda aqui”}:

plot(iris$Sepal.Length~iris$Sepal.Width, las=1, pch=16, col=c("red4", "blue4", "green4")[iris$Species], xlab="Comprimento da sépala", ylab="Largura da sépala")
Legenda aqui

Legenda aqui

 

Destaque para funções e pacotes, e execução no meio do texto

Essa coisa daqui:

Se você estiver falando de um pacote ou função, você pode dar destaque às palavras, assim:

A função `specnumber` do pacote `vegan` calcula o número de espécies.

Eu posso chamar um comando do R dentro de um texto, assim:

Este documento foi feito em `r Sys.Date()`

Outro exemplo: o conjunto de dados iris tem `r nrow(iris)` linhas.

Vai ficar deste jeito:

Se você estiver falando de um pacote ou função, você pode dar destaque às palavras, assim:

A função specnumber do pacote vegan calcula o número de espécies.

Eu posso chamar um comando do R dentro de um texto, assim:

Este documento foi feito em 2018-05-26

Outro exemplo: o conjunto de dados iris tem 150 linhas.

 


 

Bom, pessoal, acho que é isso. :D

Um abração, e até o próximo script!

Prof Marcos

 


Este documento faz parte do material que disponibilizo no meu blog, o “Cantinho do R”, e foi foi criado utilizando o software R, o programa RStudio e a linguagem Markdown. Para saber mais sobre eles, acesse:

http://www.r-project.org/

http://www.rstudio.com

http://rmarkdown.rstudio.com/

 

Quer comentar ou perguntar? Faça isso no blog, aqui