Rmarkdown1. o que é Markdown1.1 o que é Rmarkdown1.2 usando Rmarkdown no Rstudio1.4 formatação básica do Rmarkdown1.5 Links e Imagens em Rmarkdown1.5.1 Links1.5.2 Imagens1.6 Tabelas1.7 Equações2.0 Executando comandos R2.1 O bloco R (chunk) e algumas opções2.1.1 O Bloco R2.1.2 Opções do bloco R2.2 Incluído gráficos do R2.3 formatando tabelas2.4 Um exemplo em Rmarkdown e considerações finaisREFERENCIAS

Rmarkdown

1. o que é Markdown

Markdown é uma linguagem simples de marcação (markup language). Ela foi influenciada por diversas linguagens principalmente pelo HTML. desenvolvido em 2004 por John Gruber e Aaron Swartz.

O Markdown permite que seus elementos sejam definidos usando marcações de texto, sem a necessidade de tags com outras linguagens. Seu arquivo fonte é em formato texto e mesmo com os marcadores de formatação o texto continua legível.

Veja a frase abaixo

O R pode ser baixado do site do Mirror do CRAN localizado na FIOCRUZ

em HTML :

 

em Markdown teríamos :

 

Como vemos no pequeno exemplo acima o markdown é simples, usa símbolos para fazer formatações como negrito, Itálico , links etc..., como você pode deduzir da linha acima, texto entre um * estará em negrito , já entre apenas um * estará em itálico .

O markdown é uma ferramenta muito prática para o dia a dia e seu conteúdo pode ser convertido facilmente em diversos formatos , HTML, PDF , EPUB (ebook) e ate mesmo MS WORD DOC.

1.1 o que é Rmarkdown

O Rmarkdown é uma extensão do markdown que adiciona ao R um ambiente integrado para

Essas características fazem do RMarkdown uma ferramenta única possibilitando uma expansão e inovação na maneira que usamos o R. As características apontadas acima tornam o R uma ferramenta de excelência , facilitado a produção de análises, mantende e documentando de uma forma mais amigável os scripts em R e, por fim, gerando relatórios complexos integrando facilmente , textos gráficos e tabelas e gerando documentos em qualidade de editoração

usando o Rmarkdown podemos facilmente formatar

em resumo tudo que voce necessita para um relatório técnico, trabalho de fim de curso ou até mesmo um artigo científico

1.2 usando Rmarkdown no Rstudio

Apesar de não ser obrigatório fazer o rmarkdown no Rstudio, ele nos facilita muito a tarefa de criar, editar e gerar o formato de saída.

Antes de entrarmos nos detalhes do markdown vamos ilustrar o processo do Rstudio para que fique mais claro como é o processo.

Após iniciar o Rstudio clique na opção file em seguida new file e, por fim, no menu lateral a opção Rmarkdown

so para ficar mais claro

Apos selecionar Rmarkdown o seguinte menu vai aparecer

Informe o Título do documento , o nome do Autor e o formato de saída.

ATENÇÃO Nesse curso vamos lidar somente com HTML , como se pode ver é necessária a instalação de programas adicionais para implementar a saída em PDF

Apos clicar em OK o rstudio cria uma aba no editor com um código de exemplo

Para gerar o documento devemos clicar no pequeno botão onde está escrito knit

caso ainda não tenha salvo o arquivo o rstudio vai solicitar um nome, de um nome para o arquivo (a extensão dele será *.Rmd )

Em seguida você vera no console do R o arquivo sendo transformado para o formato html e exibido em uma janela de apresentação do próprio rstudio

A janela de apresentação é um ambiente de visualizar o html, mas se quiser clilcar no botão open in Browser a página será exibida no navegador default do seu sistema operacional.

Vamos a segui conhecer um pouco mais da sintaxe do Rmarkdown

1.4 formatação básica do Rmarkdown

Vamos apresentar os elementos basicos de formatação do Rmarkdown, note que muitas vezes existem mais de uma maneira de especificar um formato.

 

Existem 6 níveis de cabeçalho

 

Importante notar que o símbolo # deve estar na primeira coluna, nenhum espaço ou tabulação antes dele

Para criar listas use * ou -

 

Atenção aos sub itens , que devem ter uma tabulação ou espaços antes do símbolo * ou -

Para listas numeradas

 

Repare que mesmo estando fora de ordem, o Rmarkdown vai ordenar corretamente os itens

Linha separadora

Em muitas ocasiões pode ser útil ter uma linha separando pedaços do texto. em rmarkdown basta fazer uma linha com 3 asteriscos para se obter:


 

Bloco de citações (block quotation)

 

Vamos testar esses elementos que vimos acima. Crie no rstudio um novo documento do tipo Rmarkdown, apague totalmente o conteúdo e cole o conteúdo abaixo. em seguida crie o arquivo de saída (neste caso html) clicando no botão knitr

Quebrando parágrafos e forçando quebra de linhas

Para inserir uma quebra entre parágrafos inclua uma linha totalmente em branco

Para forçar uma quebra de linha, ponha dois espaços
em branco no final da linha.

 

Observe que a primeira no incio do arquivo gerado pelo rstudio temos

 

Esse início é denominado cabeçalho YAML , onde se setam opções que serão passadas a um programa chamado pandoc que é o responsável por transformar o Rmarkdown no formato desejado!

 

Observe o documento gerado, agora experimente, por exemplo, colocar um espaço antes de uma # , ou remover a linha entre "Ronald Fisher em 1938 disse" e o resto da citação.

1.5 Links e Imagens em Rmarkdown

1.5.1 Links

Criar um link é bem simples, vamos criar um link apontando para o site da Fiocruz

 

Neste caso teremos somente o link que esta entre [] e o endereço da URL não vai aparecer. já no formato abaixo o link sera exibido e estará ativo .

 

Pode-se combinar o link a vários outros elementos, uma lista por exemplo.

 

Uma vez mais precisamos estar atentos ao espaço. Não pode haver espaçamento entre as chaves e os parêntesis.

Tente incluir um link no nome de Ronald Fisher apontando para https://pt.wikipedia.org/wiki/Ronald_Fisher

1.5.2 Imagens

Para imagens temos um processo semelhante. para incluir por exemplo o logo do PROCC buscando a imagem através da rede.

 

PROCC

Note que o texto entre os colchetes diferente dos links não aparece, então na prática

 

Caso a imagem esteja local, você deve apenas apontar para o caminha do imagem, por exemplo

 

ou por exemplo como abaixo caso esteja no mesmo diretorio que seu arquivo .Rmd

 

Modifique o arquivo Rmarkdown criado anteriormente e insira os links abaixo como figuras!

http://images.memes.com/meme/836717

http://blog.revolutionanalytics.com/downloads/datasaurus.gif

Como vimos vários formatos gráficos podem ser usados

Mas note que o tamanho depende do tamanho original da imagem! Assim para ajustar o tamanho deve-se fazer o download da imagem e alterar localmente o tamanho. Outras linguagens de marcação como por exemplo HTML ou LaTex possuim opções para se ajustar o tamanho.

 

1.6 Tabelas

Vamos falar brevemente sobre tabelas básicas em Rmarkdown. Antes de mais nada, aqui estamos falando de tabelas implementadas em markdown e não as tabelas geradas por um comando no R.

Veja o código abaixo

 

ele vai gerar a seguinte tabela:

NomeSexoIdadeGrupo
JoãoM34A
MariaF29A
AnaF32B

Repare que a coluna Nome temos na segunda linha :---- , o que faz com que a coluna seja alinhada à esquerda. Já a coluna sexo :---: indicando que estará centralizada , Idade está ----: significando alinhada à direita e por fim a coluna Grupo que estão na opção default que é alinhada à esquerda.

Alguns elementos podem ser combinados dentro da tabela, como negrito, itálico, links e imagens!

FiocruzPROCC

Esse seria o código para reproduzir essa tabela. No entanto lembre-se que vai precisar das imagens e de configurar o caminho para refletir a localização das imagens na sua máquina. Outro fato a ser notado é que não ha a necessidade de estar tudo alinhado, já que temos como separador o símbolo |.

 

1.7 Equações

A formatações das equações existentes no Rmarkdown seguem o padrão LaTeX. Existem basicamente duas maneiras de se escrever uma equação no Rmarkdown , no formato chamado inline e na forma de blocos.

Por exemplo podemos escrever dos Brasileiros tem sobre peso ou obesidade! ou ainda o parâmetro obtido foi e ainda algo como , as letras gregas , símbolos especiais como , operadores matemáticos e lógicos como ou ainda

veja o fonte do paragrafo acima:

 

O modo inline permite que misturemos fórmulas, letras gregas, símbolos junto ao texto. Para isso usamos o $ para abrir e fecha o trecho com o formato Matemático.

Já no modo bloco devemos escrever uma ou mais equações dentro de um bloco iniciado por $$ e fechado pelo mesmo comando. por exemplo

 

A equação de segundo grau é dada por:

ou ainda a forma da variância é

 

Podemos também definir bloco de matrizes

 

O formato Para compreender algumas das possibilidades desse formato veja Aqui e Aqui para intruções sobre como usar equações no formato Rmarkdown e Aqui para instruções gerais do formato matemático usado na linguagem LaTeX.

2.0 Executando comandos R

Ate aqui vimos como lidar com o formato do Rmarkdown mas ainda não vimos como integrar com o R.

Aqui também existem duas maneiras de utilizar o R, o modo inline e o modo de bloco de código R, que também vamos chamar de chunk .

o modo inline é simples , podemos, por exemplo, escrever a seguinte linha em qualquer pedaço.

104 graus fahrenheit são 40 graus Celsius

 

Repare que o acento grave ` para criar o código inline, também é necessário usar o r minúsculo após o primeiro acento grave.

Tente rodar o rmarkdown abaixo

 

O uso do comando inline do R e deve ser restrito a pequenos cálculos e formatação de strings, pois essa maneira não permite comandos mais complexos e nem gráficos.

2.1 O bloco R (chunk) e algumas opções

Antes de falarmos sobre os blocos há algumas considerações importantes a serem feitas:

  1. O espaço de trabalho workspace da sua sessão de R não é compartilhado com o rmarkdown , ou seja, todos os objetos , pacotes que estão carregados não serão passados ao rmarkdown
  2. Nenhum objeto será exportado por default, a não ser que seja explicitamente salvo
  3. O arquivo produzido como saída pelo rmarkdown, quer seja uma página HTML, um PDF ou um DOC no formato Word pode ser salvo.
2.1.1 O Bloco R

Os blocos de comandos em R (chunk) usados no rmarkdown são usados para fazer o processamento em R, produzir resultados, gráficos ou simplesmente para ilustrar o código quando se prepara uma aula ou se quer deixar o código visível em um relatório pro exemplo.

um exemplo de bloco em rmarkdown , note que a repetição de 3 acentos graves seguidos de {r} marcam o início do bloco e informam que aquele bloco contem código em R. Para fechar o bloco são necessários 3 acentos graves. O código

 

Ao executar o comando acima teremos em nossa janela de saída a seguinte figura. de agora em diante vou omitir a parte relativa ao YAML.

Note que temos duas regiões,

E se quisermos incluir mais um bloco? Poderíamos digitar todos os comandos para criar o bloco, no entanto o editor do rstudio oferece um atalho para isso.

No canto superior direito do editor do rstudio clique em insert e em seguida na opção R. esse comando vai criar um bloco vazio na posição do cursor.

Insira dentro desse bloco o seguinte comando:

 

de maneira que tenha um código mais ou menos como esse

 

Execute o rmarkdown e observe como fica o resultado.

Apague e tente agora o seguinte código.

 

o que aconteceu? Porque? Como fazer que os resultados obtidos sejam exibidos?

 

Vamos fazer mais um exemplo, desta vez

 

Note que ao carregarmos um pacote ou qualquer outra mensagem de aviso tambem será ecoada para a saída. Podemos silenciar a saída da função library() usando as seguintes opções.

 library(dplyr,warn.conflicts = FALSE,quietly = TRUE)

2.1.2 Opções do bloco R

Cada bloco R pode ter um nome, isso ajudar quando temos muitos blocos e ajuda também na detecção de erros pois o nome do bloco. O nome é opcional mas nunca deve se repetir.

 

Repare que cada bloco tem um nome único.

Suponha que no exemplo acima queremos suprimir a exibição dos blocos setup e transformação , bastaria introduzir a opção echo=FALSE no início do bloco.

​```{r transforma,echo=FALSE} 

e

​```{r modelo,echo=FALSE}

faça isso para os dois blocos e rode novamente. A opção echo portanto controla se o comando R dentro do bloco sera exibido ou não.

Experimente alterar novamente esse bloco e adicionar a opção eval=FALSE e volte echo para TRUE

​```{r transforma,echo=TRUE,eval=FALSE} 

o que ocorreu?

A opção eval controla se o comando será executado (evalueted) ou não , mas repare que ele foi exibido mas não executado! Então veja que esse parâmetro é util para exibir o código sem de fato executa-lo.

agora vá no block setup e coloque a opção include=FALSE.

​```{r setup,include=FALSE}

essa opção faz com que o bloco não apareça, que não haja output nenhum. a diferenção para a opção echo e que nesta o código não é mostrado mas o output é

existem muitas outras opções , para saber mais veja no pacote knitr na sessão Code Evaluation e saiba mais sobre essas e outras opções disponiveis.

algumas mas mais frequentes estão abaixo.

opçãodefaultdescrição
evalTRUEexecuta o código R dentro do bloco
echoTRUEexibe o código R contido no bloco e também seu output
warningTRUEexibe mensagens de aviso ocorridas no bloco
errorFALSEexibe mensagens de erro ocorridas no bloco
messageTRUEexibe mensagens ocorridas durante a execução
tidyFALSEreorganiza o texto no output
result"markup"formato do output "markup", "asis", "hold", or "hide"
cacheFALSEcria um cache para armazenar os dados
(aumenta velocidade em multiplas execuções)
comment"##"caracteres exibidos antes de cada linha de output
para desligar comment=NA ou commnet=""
includeTRUEinclui ou não o bloco no output final do documento, quando FALSE nada sera exibido mas o código será executado assim mesmo.

2.2 Incluído gráficos do R

Até aqui vimos formatos de output de texto, vamos ver como fazer gráficos e conhecer as principais opções para controlar sua exibição.

 

Vamos altera um pouco o gráfico usando as opções do bloco. As principais opções são as seguintes:

opçãodefaultdescrição
fig.width7 polegadaslargura da figura
fig.height5 polegadasaltura da figura
fig.retina2qualidade da figura, 1 = baixa, 2 = alta
out.widthNAlargura que pode ser especificado em valor o em %
por exemplo out.width = "20%"
out.heightNAidem a descrição acima aplicada a altura.
dpi96pontos por polegada, alta= 300 DPI

Vamos especificar a largura em apenas 2.5 " (polegadas)

 

Vamos controlar a altura e largura

 ```{r fig.height=5,fig.width=7}
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width,color=Species)) +
  geom_jitter(alpha = 0.6) +
  facet_grid(. ~ Species)
​```

Especificando o percentual da largura

 

Com as opções out.width e out.height é possível controlar qualquer tipo de output gráfico, Lembram-se da figura grande do logo do R?

​```{r, out.width = "50%"}
library(knitr)
include_graphics("https://www.r-project.org/logo/Rlogo.png")
​```

Esses são algumas das opções mais usadas nos output gráficos, no entanto existem outros parâmetros gráficos, como, por exemplo, margens que também devem ser levados em consideração.

2.3 formatando tabelas

Para melhorar o aspecto na apresentação de tabelas, existem varios pacotes que nos ajudar, vamos ver dois deles.

O primeiro é o pacote knitr que já deve estar instalado pois junto com o rmarkdown é um dos principais pacotes para a implementação do markdown no R.

Vamos usar a função kable que vai formatar a tabela um html , para que ela possa ser renderizadas vamos usar a opção result="asis" .

 

Um outro pacote que permite formatar tabelas e até mesmo as saídas de modelos é o pacote pander. Caso esse pacote não esteja instalado é necessário instalar ou pelo menu do rstudio ou

 

em seguida teste o comando.

 

E por fim vamos usar o pacote pander para formatar o resultado de uma regressão logística.

 

2.4 Um exemplo em Rmarkdown e considerações finais

O link abaixo contem trechos de uma aula em rmarkdown onde vários elementos podem ser encontrados.

Exemplo

O rmarkdown possui muitos recursos e extensões que podem ser utilizadas. Um dos pontos importantes e que por vezes você precisa de antemão saber que tipo de documento quer produzir, se HTML , PDF, etc... pois em alguns comandos avançados podem ser específicos para cada documento.

É possível injetar comandos HTML caso deseje ter esse tipo de documento ou ainda comandos em LaTeX caso quera um PDF.

Existe até um pacote chamado bookdown que permite editar livros, que podem ser hospedados na nuvem. Existem alguns livros já disponíveis nesse formato, vários deles sobre Data Science explore esses livros em (https://bookdown.org/).

REFERENCIAS