R: Zero to Hero

Objetivos de aprendizagem

  • Entender as vantagens de programar para ciência de dados
  • Carregar um projeto no RStudio
  • Ler e transformar dados com o tidyverse
  • Visualizar dados com ggplot2

Dinâmica

  • Slides para exposição dos conceitos

  • Demonstrações no RStudio

Vantagens ao programar para fazer ciência de dados

Gratuito!

O conhecimento de experts disponível para você.

Código é texto

Quanto mais você programa, mais eficiente você fica.

E agora, os LLMs também podem te ajudar!

Reprodutibilidade

Mais fácil de organizar, entender e reaproveitar seu trabalho.

Comunidade

Fóruns e comunidades sempre te ajudando

O ciclo da ciência de dados

O dia-a-dia de quem trabalha com ciência de dados

Vamos ao RStudio!

RStudio

Ao abrir o RStudio, você verá 4 quadrantes:

RStudio

Esses quadrantes representam o editor, o console, o environment e o output. Eles vêm nesta ordem, mas você pode organizá-los da forma que preferir acessando a seção Pane Layout da opção Global options... no menu Tools.

O editor e o console são os dois principais painéis do RStudio. Passaremos a maior parte do tempo neles:

  • Editor/Scripts: é onde escrevemos nossos códigos. Repare que o RStudio colore algumas palavras e símbolos para facilitar a leitura do código.

  • Console: é onde rodamos o código e recebemos as saídas. O R vive aqui!

Atalhos

Conhecer os atalhos do teclado ajuda bastante quando estamos programando no RStudio. Veja os principais:

  • CTRL+ENTER: avalia/roda a linha selecionada no script. O atalho mais utilizado.

  • ALT+-: cria no script um sinal de atribuição (<-). Você o usará o tempo todo.

  • CTRL+SHIFT+M: (%>% ou |>) operador pipe. Guarde esse atalho, será bastante utilizado.

  • CTRL+1: altera cursor para o script.

  • CTRL+2: altera cursor para o console.

  • ALT+SHIFT+K: janela com todos os atalhos disponíveis.

No MacOS, substitua CTRL por command e ALT por option.

Projetos

Uma funcionalidade muito importante do RStudio é a possibilidade de criar projetos.

Um projeto é uma pasta no seu computador. Nessa pasta, estarão todos os arquivos que você usurá ou criará na sua análise.

A principal razão de utilizar projetos é organização. Com eles, fica muito mais fácil importar bases de dados para dentro do R, criar análises reprodutíveis e compartilhar o nosso trabalho.

Habitue-se desde a cedo a criar um projeto para cada nova análise que for fazer.

Carregar um projeto

Para criar um projeto, clique em Open Project... no Menu File. Em seguida, encontre seu projeto e clique no arquivo com extensão .Rproj

Ao carregar um projeto, o RStudio apontará para pasta escolhida, onde está o arquivo .RProj. Você pode usar esse arquivo para iniciar o RStudio já com o respectivo projeto aberto.

RStudio com um projeto aberto

Cheatsheets

O RStudio tem à disposição algumas folhas de cola, as cheatsheets. Elas trazem um resumão de como utilizar diversos pacotes e até o próprio RStudio. Para acessá-las, basta clicar no menu Help e então em Cheatsheets, ou no site da RStudio.

Importação

O que é?

Importar uma base de dados para o R significa levar a informação contida no disco rígido (HD) para a memória RAM.

Caminhos

Um passo importante na tarefa de importação de dados para o R é saber onde está o arquivo que queremos importar.

Toda função de importação vai exigir um caminho, uma string que representa o endereço do arquivo no computador.

Há duas formas de passarmos o caminho de arquivo: usar o caminho absoluto ou usar o caminho relativo.

Antes de falarmos sobre a diferença dos dois, precisamos definir o que é o diretório de trabalho.

Caminhos absolutos

Caminhos absolutos são aqueles que tem início na pasta raiz do seu computador/usuário. Por exemplo:

C:/Users/julio/OneDrive/Documentos/insper/r-zero-hero/slides

Esse é o caminho absoluto para a pasta onde esses slides foram produzidos.

Na grande maioria dos casos, caminhos absolutos são uma má prática, pois deixam o código irreprodutível. Se você trocar de computador ou passar o script para outra pessoa rodar, o código não vai funcionar, pois o caminho absoluto para o arquivo muito provavelmente será diferente.

Caminhos relativos

Caminhos relativos são aqueles que têm início no diretório de trabalho da sua sessão.

O diretório de trabalho da sessão utilizada para produzir esses slides é a pasta

r-zero-hero/

Veja o caminho absoluto no slide anterior. Então, o caminho relativo para a pasta onde esses slides foram produzidos seria apenas slides/.

Trabalhar com projetos no RStudio ajuda bastante o uso de caminhos relativos, pois nos incentiva a colocar todos os arquivos da análise dentro da pasta do projeto.

Lendo arquivos de texto

Para ler arquivos de texto, como arquivos .csv ou .txt, utilizaremos funções do pacote readr.

library(readr)

ancine <- read_csv("ancine.csv")

Arquivos Excel

Para ler planilhas do Excel (arquivos .xlsx ou .xls), basta utilizarmos a função read_excel() do pacote readxl.

library(readxl)

ancine_xlsx <- read_excel("ancine.xlsx")

Argumentos úteis

Como o Excel é muito popular, é muito comum recebermos bases de dados desse tipo.

Listamos abaixo os principais argumentos:

  • sheet= para definir em qual aba estão os dados

  • skip= para pular linhas

Transformação

O pacote dplyr

O dplyr é o pacote mais útil para realizar manipulação de dados, pois possui funções para fazer virtualmente qualquer tipo de transformação nas linhas e colunas da base.

As principais funções do dplyr são:

  • filter(): filtra linhas
  • select(): seleciona colunas
  • arrange(): ordena as linhas conforme os valores de uma coluna
  • mutate(): modifica ou cria novas colunas
  • group_by(): agrupa a base conforme uma coluna
  • summarise(): sumariza colunas

O pacote dplyr

Todas essas funções seguem as seguintes características:

  • A função sempre recebe uma tibble e sempre devolve uma tibble.

  • Colocamos o tibble no primeiro argumento e o que queremos fazer nos demais argumentos.

O operador pipe |> (ou %>%)

A ideia do operador pipe é a seguinte: ele vai aplicar a função do lado direito ao objeto do lado esquerdo.

No exemplo a seguir, estamos aplicando a função sum() (lado direito) no objeto vetor (lado esquerdo).

vetor <- c(1, 2, 3)

vetor |> sum()
[1] 6

O código acima é equivalente a:

sum(vetor)
[1] 6

O operador pipe |> (ou %>%)

Quando estamos aplicando apenas uma função, o pipe não parece trazer vantagens. Mas vamos ver como fica o nosso exemplo do ancine utilizando esse operador:

# Sem pipe
arrange(select(ancine, titulo, dt_lancamento), dt_lancamento)

# Com pipe
ancine |> 
  select(titulo, dt_lancamento) |> 
  arrange(dt_lancamento)

Cheatsheet

O dplyr é um pacote muito grande e com muitas funções. Para ajudar a lembrar de todas as funções e argumentos, o RStudio disponibiliza um cheatsheet do dplyr que pode ser acessado aqui.

Visualização

Gramática de gráficos em camadas

O pacote {ggplot2} segue duas filosofias que nos ajudam a entender o processo de construção dos gráficos:

  1. Um gráfico estatístico é uma representação visual dos dados por meio de atributos estéticos (posição, cor, forma, tamanho, …) de formas geométricas (pontos, linhas, barras, …). The Grammar of Graphics.

  2. Um gráfico pode ser construído em camadas (um gráfico é a sobreposição de elementos visuais). A layered grammar of graphics.

Camadas

Para construir um gráfico, começamos com o canvas. A função ggplot() cria a primeira camada do nosso gráfico: uma tela em branco (cinza).

Camadas

cars |> 
  ggplot()
   speed dist
1      4    2
2      4   10
3      7    4
4      7   22
5      8   16
6      9   10
7     10   18
8     10   26
9     10   34
10    11   17
11    11   28
12    12   14
13    12   20
14    12   24
15    12   28
16    13   26
17    13   34
18    13   34
19    13   46
20    14   26
21    14   36
22    14   60
23    14   80
24    15   20
25    15   26
26    15   54
27    16   32
28    16   40
29    17   32
30    17   40
31    17   50
32    18   42
33    18   56
34    18   76
35    18   84
36    19   36
37    19   46
38    19   68
39    20   32
40    20   48
41    20   52
42    20   56
43    20   64
44    22   66
45    23   54
46    24   70
47    24   92
48    24   93
49    24  120
50    25   85

Camadas

cars |> 
  ggplot() +
  aes(x = speed, y = dist)

Camadas

cars |> 
  ggplot() +
  aes(x = speed, y = dist) +
  geom_point()

Estética e detalhamentos

ggplot(cars) +
  aes(speed, dist) +
  geom_point(colour = "darkblue") +
  stat_smooth(
    se = FALSE, colour = "lightgray", 
    method = "loess", formula = "y ~ x"
  ) +
  theme_minimal(14) +
  labs(
    title = "A velocidade influencia na distância de parada?",
    subtitle = "Distância necessária para parar o carro",
    caption = paste(
      "Fonte: Ezekiel, M. (1930) Methods of",
      "Correlation Analysis. Wiley"),
    x = "Velocidade", y = "Distância para parar"
  )

Cheatsheet

Qual gráfico escolher?

Obrigado!

  • Se quiser acessar o código e a base de dados, entre aqui: link