Relatórios dinâmicos

  • Uma ferramenta para tornar a pesquisa reproduzível.

  • A ideia básica ou ponto forte dos relatórios dinâmicos é 'automatizar' a geração de gráficos e tabelas em documentos (textos, páginas web, apresentações).

  • Você pode começar a usar o R no lugar do word e powerpoint.

  • LaTeX é um bom caminho para o processamento de documentos, mas você pode combinar essa linguagem com R (e RStudio).

Dinamic reports

  • É chato (e um pouco trabalhoso) refazer gráficos e tabelas em seu texto sempre que mudar algo nos dados ou na análise. Com LaTeX "bruto", você ainda precisará refazer tabelas, exportar as figuras, etc.

  • Mas os pacotes knitr e rmarkdown (junto com o RStudio) podem ajudar muito.

  • Você irá produzir seu texto (pdf) ou suas apresentações (pdf ou html) diretamente no R, criando slides como este.

knitr - o que é?

Um pacote do R para geração de relatórios dinâmicos.

Resolve problemas do pacote anterior, Sweave, e combina funcionalidades de outros pacotes, interagindo com várias linguagens de entrada e saída (R, Python, LaTeX, HTML, Markdown, etc).

install.packages('knitr', dependencies = TRUE) #instala o pacote
install.packages('tikzDevice') # pacote necessário para plotar ggplot

Uma forma de usá-lo é combinando com o LaTeX através de arquivos .Rnw.

No RStudio, New File - R Sweave.

Rmarkdown - o que é?

Outro pacote do R para geração de relatórios dinâmicos.

Baseado no knitr, porém mais intuitivo e simples para quem quer começar rápido.

Adota a sintaxe markdown e permite a produção de pdfs (relatórios e apresentação), html e documentos do Word, inclusive com gráficos interativos.

install.packages("rmarkdown", dependencies = TRUE) #instala o pacote

O mais legal dos dois pacotes é poder combinar o texto com blocos de código do R (code chunks).

Usando knitr: do .Rnw ao .pdf

  • Melhor para quem já tem familiaridade com LaTeX.

  • Com arquivos .Rnw você combina código LaTeX para fazer a edição geral do documento e do texto, podendo acrescentar R code chunks para automatizar gráficos e operações.

  • Inline commands: a expressão \ Sexp{ } permite mostrar, no decorrer do texto, o resultado de comandos do R.

  • Você também pode chamar scripts externos com a função read_chunk().

  • O mais prático é usar knitr com o RStudio. Vejamos

Usando Rmarkdown: slides ou docs

  • Bom. Mesmo se você não souber nada de LaTeX.

  • Pode servir para seus trabalhos finais e relatórios de pesquisas (bye word!).

  • Também pode funcionar para apresentações (bye powerpoint!)

  • Em apresentações baseadas em html, você pode incluir gráficos dinâmicos.

  • Sua praticidade também se revela com o RStudio. Olha só

Escolhendo: Rnw ou Rmd ?

  • Depende do seu objetivo, do que você quer produzir.

  • É um paper?

  • É uma apresentação?

  • É para web?

  • Como serão os gráficos? Estáticos ou dinâmicos?

  • É dissertação ou tese?

  • Está disposto a incrementar com LaTeX?

Escolhendo: Rnw ou Rmd ?

  • Se não souber LaTeX (ou não estiver disposto a aprender) o melhor é ficar no Rmd.

  • Se for para web e quiser usar gráficos dinâmicos, vá com Rmd (que tem sido atualizado).

  • Se for trabalhar em conjunto com quem já conhece LaTeX, fique com Rnw.

  • Se for um paper ou - especialmente - dissertação/tese, considere Rnw.

  • Atenção UERJ: existe uma classe e estilo que segue as normas da universidade, o Latex Uerj.

Um exemplo com ggplot2, plotly e knitr

Plotly é uma plataforma para criar, editar e compartilhar gráficos.

Para quem usa ggplot2, a função ggplotly() deixa os gráficos interativos e prontos para a web.

Primeiro, instalamos os pacotes necessários.

install.packages("devtools") # para instalar pacotes do github

devtools::install_github("ropensci/plotly") #intala o pacote

Um exemplo com ggplot2, plotly e knitr

Agora, vamos testar.

library(plotly) # carrega o pacote

py <- plotly(username="r_user_guide", key="mw5isa4yqp")  # abre uma conexão
 
gg <- ggplot(cars) + geom_point(aes(speed, dist)) # gera o gráfico
 
py$ggplotly(gg) # manda o gráfico para o plotly

Um exemplo com ggplot2, plotly e knitr

  • Plotly permite incorporar plots interativos em outros documentos, como páginas da web.

  • E podemos usar knitr/Rmarkdow para criar essas web pages.

  • Duas configurações: 'plotly=TRUE', no chunk, e 'session=knitr', no plot.

  • Vamos tentar?

Referências adicionais

Referências adicionais