Apresentação de resultados com R

Universidade Federal de São Paulo (UNIFESP)

Sobre essa apresentação

  • O que é a R-Ladies SP?

  • Quem sou eu?

  • Compartilhando resultados: rotina de trabalho convencional, reprodutibilidade, programação letrada.

  • Quarto: o que é, quais as vantagens e desvantagens.

  • Exemplos de uso do Quarto

  • Comunicação além do Quarto: Shiny.

  • Primeiros passos no Quarto

  • Links para saber mais

R-Ladies São Paulo

R-Ladies São Paulo

  • R-Ladies é uma organização mundial cuja missão é promover a diversidade de gênero na comunidade da linguagem R.

  • R-Ladies São Paulo faz parte da R-Ladies Global.

  • Nosso principal objetivo é promover a linguagem R, com foco na participação pessoas que se identificam com gêneros sub-representados na comunidade R, portanto: mulheres cis, mulheres trans, homens trans, pessoas não-binárias e queer.

  • É apoiada financeiramente pela R Consortium (em parceria com a Linux Foundation).

Blog: rladies-sp.org

  • Textos escritos por pessoas da comunidade

Quem sou eu?

Beatriz Milz

  • Co-organizadora da R-Ladies São Paulo

  • Equipe da secretaria executiva da Revista Ambiente & Sociedade

  • Software peer review editor da rOpenSci

  • Formação acadêmica:

    • Graduação: Gestão Ambiental - EACH/USP
    • Mestrado: PPG-Análise Ambiental Integrada - UNIFESP Diadema
    • Doutorado: PPG Ciência Ambiental (PROCAM) - IEE/USP
  • Experiência anterior:

    • 2 anos - analista de dados na R6/Curso-R
    • 2 anos - NTGA/SMSU/PMSP

Conteúdos que estou mais envolvida

Conteúdos que estou mais envolvida

Organização, junto com a Luana Antunes, do clube do livro “R for Data Science”, pela R-Ladies São Paulo. Mais informações.

O que eu gosto de fazer?

  • Dormir

O que eu gosto de fazer em R?

  • Automatizar tarefas -> mais tempo para fazer coisas que eu gosto!

Compartilhando os resultados

Compartilhando os resultados

  • Compartilhar os resultados é uma etapa importante na pesquisa!

  • Existem vários formatos de comunicação, pois depende do público que queremos atingir.

  • A comunicação pode ser feita de diferentes formas: TCCs, dissertações, teses, artigos científicos, relatórios, apresentações, vídeos, textos para a internet, etc.

Rotina de trabalho comum

  • Fazer as análises, tabelas, gráficos, mapas em algum software específico (ex. Excel, Google Sheets, SPSS, R, Python, QGIS, etc.).

  • Copiar e colar os resultados em um documento de texto (ex. Word, Google Docs, etc.), em uma apresentação (ex. Power Point, Google Slides, etc.).

  • Salvar o arquivo e enviar para a pessoa que te orienta, colegas, etc.

Ainda em uma rotina comum

  • Recebemos feedback e precisamos incorporar as sugestões

  • A base de dados é atualizada

  • Precisamos fazer alterações nas análises

  • Precisamos refazer os passos do slide anterior! :(

Problemas dessa rotina

  • Não conseguimos reproduzir os resultados sem refazer tudo manualmente.

  • Gastamos muito tempo refazendo tudo manualmente.

  • Maior chance de erros!

Reprodutibilidade

  • “É um conceito que não tem uma definição única e comum”. (Gundersen, 2021)

  • “Para alguém fazer uma afirmação científica legítima, ele deve ser capaz de reproduzir totalmente seus resultados a partir de seus dados brutos (e de preferência outros devem ser capazes de reproduzi-los também)”. Dr. John Paul Helveston

  • Além de promover a confiança na ciência, a reprodutibilidade facilita a colaboração entre pesquisadores, permitindo que análises sejam revisadas, aprimoradas e adaptadas para outros contextos.

Reprodutibilidade

Quais fatores contribuem com pesquisa não reprodutível? Fonte: Baker (2016)

Reprodutibilidade

“Reprodutibilidade é como escovar os dentes. Isso é bom para você, mas leva tempo e esforço. Depois de aprender, torna-se um hábito.” - Irakli Loladze, Bryan College of Health Sciences em Lincoln, Nebraska.

Baker, M. 1,500 scientists lift the lid on reproducibility. Nature 533, 452–454 (2016). https://doi.org/10.1038/533452a

Exemplos

  • Documentação adequada de métodos

  • Disponibilização da base de dados original

  • Disponibilização dos códigos utilizados para realizar as etapas de ciência de dados

Alternativa: Programação letrada

  • Utilização de linguagens de programação para realizar as etapas de ciência de dados.

  • Cada etapa de análise é documentada em forma de código, que pode ser compartilhada com pares para que seja consultada, avaliada, e aprimorada em pesquisas futuras.

  • Programação letrada (literate programming):

    • Conceito criado por Donald Knuth na década de 80.
    • Esse paradigma de programação consiste em colocar o código fonte de um programa e texto de sua documentação em um único arquivo, de forma que pessoas possam ler e entender o conteúdo.

Ciência Aberta

Usando o R para apresentar resultados

Ciclo da Ciência de Dados

Ciclo da Ciência de Dados

Quarto

Quarto

  • O R Markdown é um pacote em R para criação de relatórios automatizados utilizando as linguagens de programação R e de marcação Markdown, criado em 2014.

  • O Quarto é a nova geração do RMarkdown! Não é mais apenas um pacote em R, e sim um software que pode ser usado com outras linguagens de programação, como Python e Julia. Foi lançado em 2022.

  • O arquivo gerado é estático, não depende de uma sessão de R para ser aberto.

  • Podemos gerar arquivos word, powerpoint, pdf, html (páginas da internet), etc.

Pontos positivos

  • Reprodutibilidade

  • Facilidade de atualização do arquivo final

  • Menor chance de erros

  • Facilidade de aproveitar o código e gerar diferentes tipos de arquivos finais.

  • Facilidade de compartilhar o código e os resultados com outras pessoas.

  • Possibilita a revisão por pares (peer review) do código.

  • Incentiva uso de boas práticas de programação.

  • Focamos mais no conteúdo, e não na formatação.

Pontos negativos

  • Curva de aprendizado

  • Dificuldade de colaboração com pessoas que não programam

  • Formatação mais limitada

  • Expert blind spot… Fui perguntar a opinião de outras pessoas :)

Pontos negativos (opinião de outras pessoas)

  • Dificuldade em formatar os conteúdos de forma mais personalizada

  • É preciso entender pelo menos um pouco de campos diferentes (Markdown, HTML, CSS)

  • Não conseguir fazer animações como no Powerpoint

  • Obrigada: Haydee Svab, Fernanda Peres, Bianca Muniz

Dificuldades para quem está começando (opinião de outras pessoas)

  • Entender a vantagem da reprodutibilidade

  • Vencer a curva de aprendizado inicial: o benefício é mais claro ao longo prazo

  • Acreditar que na imensa maioria das vezes terão um resultado final melhor do que fazer ajustes na mão

  • Obrigada: Haydee Svab, Fernanda Peres, Bianca Muniz

Opinião da Fernanda Peres

“Eu sou MUITO fã do RMarkdown para relatórios, realmente agilizou meu trabalho, minha entrega de relatórios. Não migrei para o Quarto ainda porque senti que há funções que eu uso que ainda não foram implementadas em Quarto.”

Exemplos

Exemplos de documentos acadêmicos

Comunicação: exemplos [pt. 1]

O que podemos fazer? Exemplos
Blogs e sites - RStudio AI Blog
- Blog da R-Ladies São Paulo
Livros - R for Data Science
Apresentações - Essa apresentação (e a maioria das apresentadas por mim)
- Apresentação da tese de doutorado do Julio Trecenti

Comunicação: exemplos [pt. 2]

O que podemos fazer? Exemplos
Relatórios - Relatório do Observatório da Insolvência
Trabalhos acadêmicos - Tese de doutorado Julio Trecenti
Artigos científicos - Artigo da minha pesquisa de mestrado
Outros exemplos Newsletter Garimpo

Comunicação além do Quarto

Comunicação: ferramentas

Ideia importante: Interatividade

  • É interessante conseguir identificar a interatividade que vem do JavaScript e a interatividade feita com código em R.

RMarkdown e Quarto

  • O arquivo gerado é estático, não depende de uma sessão de R para ser aberto.

  • Os elementos adicionados podem ter algum nível de interatividade (como mapas, gráficos, tabelas) utilizando bibliotecas em JavaScript.

  • Facilita o uso para programação letrada.

Shiny

  • Shiny é um pacote em R para criar dashboards interativos com R.

  • Melhor dos mundos para interatividade: podemos utilizar elementos que são interativos devido ao JS, e também podemos apresentar conteúdos interativos utilizando R.

  • Necessita de uma sessão de R para que seja aberto!

  • Não é focado em programação letrada.

  • É possível fazer dashboards para usos científicos. Ex: Zootraits (dashboard e artigo)

Shiny - Servidor e Interface do Usuário

Qual usar?

  • Depende do objetivo, público-alvo, etc!

  • A forma de programar nos dois é bem diferente.

  • Existe algo no meio do caminho, que permite usar o shiny de forma simplificada: Quarto Dashboards e flexdashboard (com RMarkdown)!

  • Considero Quarto/RMarkdown mais fácil de aprender.

  • Shiny “convencional” (quero dizer, sem flexdashboards) te dá muitas possibilidades, no longo prazo é interessante também :)

Primeiros passos

Estrutura de um arquivo .qmd

  • O arquivo .qmd é um arquivo de texto, que pode ser aberto em qualquer editor de texto (ex. RStudio, VS Code, bloco de notas, etc.).

  • Nesse arquivo, temos a seção de metadados, onde definimos o título, autoria, data, tipo de arquivo gerado, etc.

  • Depois, adicionamos o conteúdo, onde escrevemos o texto, inserimos os códigos, tabelas, gráficos, etc.

  • Podemos configurar como queremos que os resultados apareçam no arquivo final: se queremos o código e o resultado, apenas o resultado, etc.

Criando um Projeto Quarto no RStudio

Criando um Projeto Quarto no RStudio

Criando um arquivo Quarto no RStudio

Criando um arquivo Quarto no RStudio

Campos de código - Carregar pacotes

```{r}
library(tidyverse)
library(fs) # lidar com pastas 
library(flextable) # criar tabelas
library(dados) # tem a base de pinguins
```

Campos de código - Importar base de dados

```{r}
# Link da Base de dados
url <- "https://benubah.github.io/r-community-explorer/data/rladies.csv"

# Criar pasta data
dir_create("data")

# Fazer o download do arquivo e salvar na pasta data
download.file(url, "data/rladies.csv", method = "curl")

# importar a base de dados baixada
rladies <- read_csv("data/rladies.csv")
```

Campos de código - Tabela

```{r}
rladies |> 
  group_by(region) |>
  summarise(
    soma_membros = sum(members),
    quantidade_capitulos = n()
  ) |> 
  arrange(desc(soma_membros)) |> 
  flextable()
```

region

soma_membros

quantidade_capitulos

US/Canada

30,112

59

Latin America

27,774

58

Europe

25,056

57

Asia

5,806

19

Africa

5,688

12

Australia

5,371

10

Pacific/Galapagos

460

1

Campos de código - Gráfico

```{r}
grafico_latin_rladies <- rladies |> 
  filter(region == "Latin America") |> 
  group_by(country) |>
  summarise(
    soma_membros = sum(members),
    quantidade_capitulos = n()
  ) |> 
  mutate(country = fct_reorder(country, soma_membros)) |>
  ggplot() +
  geom_col(
    aes(y = country, x = soma_membros)
  ) +
  theme_light() +
  labs(
    x = "Quantidade de membros",
    y = "País",
    title = "R-Ladies na América Latina",
    subtitle = "Membros na plataforma Meetup [desatualizado]"
  ) +
  gghighlight::gghighlight(
    country == "Brazil"
  )
```

Campos de código - Gráfico

```{r}
#| fig.align: "center"
grafico_latin_rladies
```

E o texto com os resultados?

  • Vamos ler esse trecho:

A base de dados pinguins apresenta dados referente à 344 pinguins, das seguintes espécies: Pinguim-de-adélia, Pinguim-gentoo, e Pinguim-de-barbicha. Os dados foram coletados entre os anos 2007 e 2009, nas seguintes ilhas: Torgersen, Biscoe, e Dream. O peso médio dos pinguins amostrados foi de 42 kg. Os dados foram obtidos através do pacote dados.

E o texto com os resultados?

  • Destacando os valores que podemos gerar com R:

A base de dados pinguins apresenta dados referente à 344 pinguins, das seguintes espécies: Pinguim-de-adélia, Pinguim-gentoo, e Pinguim-de-barbicha. Os dados foram coletados entre os anos 2007 e 2009, nas seguintes ilhas: Torgersen, Biscoe, e Dream. O peso médio dos pinguins amostrados foi de 42 kg. Os dados foram obtidos através do pacote dados.

E o texto com os resultados?

  • O código por trás:

Outras funcionalidades interessantes para documentos acadêmicos

  • Adicionar equações com LaTeX

  • Adicionar referências bibliográficas com Zotero (ou outro gerenciador de referências que gere um arquivo .bib)

  • Gerar a lista de referências ao final do documento (a partir de um arquivo .csl

  • Facilidade para citar pacotes em R

  • Referências cruzadas (capítulos, figuras, tabelas)

  • Leia sobre

Conclusão

Para aprender mais sobre o Quarto

Para aprender mais

  • Criei uma lista no Youtube de videos em que eu participo :): bit.ly/beamilz-yt - mais de 50 vídeos, desde 2019. Tem vários nesse tema!

Conteúdos que estou mais envolvida

Saiba mais sobre a R-Ladies

Obrigada!

Slides por Beatriz Milz (@BeaMilz), feito com Quarto e Quarto R-Ladies Theme.