Uma Filosofia para Manipular Dados

Ícaro Vidal Freire

Parte I

Estabilidade vs Flexibilidade

Lembrem-se que o R é uma linguagem e ambiente para programação estatística. É um projeto amplo e muito bem estabelecido. Essa estabilidade da linguagem R é um dos aspectos buscados por seus desenvolvedores.

Todavia, como ambiente de programação, o R permite que usuários desenvolvam seus próprios pacotes, tornando assim essa linguagem bastante flexível. Geralmente esses pacotes são criados para automatizar certos procedimentos usuais (repetitivos), ou para simplificar um conjunto de procedimentos que as funções do R Base disponibilizam, dentre outras coisas.

Para análise de dados, é popular um certo pacote do R, denominado tidyverse, que possui algumas características que chamam à atenção, como veremos nesse texto.

O que é o Tidyverse?

De acordo com a página oficial do Tidyverse:

O tidyverse é um conjunto de pacotes que funcionam em harmonia porque compartilham representações de dados comuns e design de API. O pacote tidyverse é projetado para facilitar a instalação e o carregamento de pacotes principais do próprio tidyverse em um único comando.

Ou seja, o Tidyverse é um pacote que instala e carrega outros pacotes.

Apenas por curiosidade, ele instala cerca de 26 pacotes1:

Instalados
“broom” “cli” “crayon” “dbplyr” “dplyr”
“forcats” “ggplot2” “haven” “hms” “httr”
“jsonlite” “lubridate” “magrittr” “modelr” “pillar”
“purrr” “readr” “readxl” “reprex” “rlang”
“rstudioapi” “rvest” “stringr” “tibble” “tidyr”
“xml2”

Mas, destes, carrega apenas 8 pacotes diretamente2:

Carregados
readr forcats tibble tidyr
stringr dplyr ggplot2 purrr

Você pode clicar no nome de cada um deles, na tabela acima, para conhecer mais3. Todavia, segue uma descrição resumida de cada deles:

  • readr: para importação de dados (.csv, dentre outras variações);
  • stringr: para strings, ou seja, manipulação de fragmentos de texto;
  • forcats: para manipular variáveis categóricas (qualitativas);
  • tibble: uma melhora substancial nos antigos data frames;
  • tidyr: para organização dos dados (pivotagem de dados);
  • dplyr: para manipulação de dados (limpeza, transformação, etc.);
  • ggplot2: para visualização de dados (graficos em alto nível);
  • purrr: para programação funcional.

No que se refere à nossa disciplina, obviamente, não poderemos estudar todos os pacotes que compõem o tidyverse. Na realidade, só estudaremos algumas funções de, pelo menos, 5 dos pacotes carregados pelo tidyverse (não usaremos o stringr, forcats, ou o purrr).

Além disso, pacotes como dplyr carregam, indiretamente, o magrittr. Este último, possui um operador muito importante que usaremos para legibilidade (clareza e funcionalidade) dos códigos: o operador pipe, representado por %>%.

Vamos falar um pouco como funciona o %>%, porém, antes, é importante notar que o pacote tibble modifica a ideia dos data frames (do R Base), melhorando-os, pois, dentre outras coisas:

  1. Evita coerções indesejadas de alguns elementos para vetor;
  2. Mostra, no console, de forma mais enxuta o conjunto de dados.

Veja a comparação entre uma visualização em um data frame e o mesmo data frame transformado numa tibble. Para isso, vamos usar o conjunto de dados iris

Data Frame vs Tibble

Se digitarmos iris no console do RStudio

iris

Carrega todo o data frame na memória do computador e exibi-o:

##     Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
## 1            5.1         3.5          1.4         0.2     setosa
## 2            4.9         3.0          1.4         0.2     setosa
## 3            4.7         3.2          1.3         0.2     setosa
## 4            4.6         3.1          1.5         0.2     setosa
## 5            5.0         3.6          1.4         0.2     setosa
## 6            5.4         3.9          1.7         0.4     setosa
## 7            4.6         3.4          1.4         0.3     setosa
## 8            5.0         3.4          1.5         0.2     setosa
## 9            4.4         2.9          1.4         0.2     setosa
## 10           4.9         3.1          1.5         0.1     setosa
## 11           5.4         3.7          1.5         0.2     setosa
## 12           4.8         3.4          1.6         0.2     setosa
## 13           4.8         3.0          1.4         0.1     setosa
## 14           4.3         3.0          1.1         0.1     setosa
## 15           5.8         4.0          1.2         0.2     setosa
## 16           5.7         4.4          1.5         0.4     setosa
## 17           5.4         3.9          1.3         0.4     setosa
## 18           5.1         3.5          1.4         0.3     setosa
## 19           5.7         3.8          1.7         0.3     setosa
## 20           5.1         3.8          1.5         0.3     setosa
## 21           5.4         3.4          1.7         0.2     setosa
## 22           5.1         3.7          1.5         0.4     setosa
## 23           4.6         3.6          1.0         0.2     setosa
## 24           5.1         3.3          1.7         0.5     setosa
## 25           4.8         3.4          1.9         0.2     setosa
## 26           5.0         3.0          1.6         0.2     setosa
## 27           5.0         3.4          1.6         0.4     setosa
## 28           5.2         3.5          1.5         0.2     setosa
## 29           5.2         3.4          1.4         0.2     setosa
## 30           4.7         3.2          1.6         0.2     setosa
## 31           4.8         3.1          1.6         0.2     setosa
## 32           5.4         3.4          1.5         0.4     setosa
## 33           5.2         4.1          1.5         0.1     setosa
## 34           5.5         4.2          1.4         0.2     setosa
## 35           4.9         3.1          1.5         0.2     setosa
## 36           5.0         3.2          1.2         0.2     setosa
## 37           5.5         3.5          1.3         0.2     setosa
## 38           4.9         3.6          1.4         0.1     setosa
## 39           4.4         3.0          1.3         0.2     setosa
## 40           5.1         3.4          1.5         0.2     setosa
## 41           5.0         3.5          1.3         0.3     setosa
## 42           4.5         2.3          1.3         0.3     setosa
## 43           4.4         3.2          1.3         0.2     setosa
## 44           5.0         3.5          1.6         0.6     setosa
## 45           5.1         3.8          1.9         0.4     setosa
## 46           4.8         3.0          1.4         0.3     setosa
## 47           5.1         3.8          1.6         0.2     setosa
## 48           4.6         3.2          1.4         0.2     setosa
## 49           5.3         3.7          1.5         0.2     setosa
## 50           5.0         3.3          1.4         0.2     setosa
## 51           7.0         3.2          4.7         1.4 versicolor
## 52           6.4         3.2          4.5         1.5 versicolor
## 53           6.9         3.1          4.9         1.5 versicolor
## 54           5.5         2.3          4.0         1.3 versicolor
## 55           6.5         2.8          4.6         1.5 versicolor
## 56           5.7         2.8          4.5         1.3 versicolor
## 57           6.3         3.3          4.7         1.6 versicolor
## 58           4.9         2.4          3.3         1.0 versicolor
## 59           6.6         2.9          4.6         1.3 versicolor
## 60           5.2         2.7          3.9         1.4 versicolor
## 61           5.0         2.0          3.5         1.0 versicolor
## 62           5.9         3.0          4.2         1.5 versicolor
## 63           6.0         2.2          4.0         1.0 versicolor
## 64           6.1         2.9          4.7         1.4 versicolor
## 65           5.6         2.9          3.6         1.3 versicolor
## 66           6.7         3.1          4.4         1.4 versicolor
## 67           5.6         3.0          4.5         1.5 versicolor
## 68           5.8         2.7          4.1         1.0 versicolor
## 69           6.2         2.2          4.5         1.5 versicolor
## 70           5.6         2.5          3.9         1.1 versicolor
## 71           5.9         3.2          4.8         1.8 versicolor
## 72           6.1         2.8          4.0         1.3 versicolor
## 73           6.3         2.5          4.9         1.5 versicolor
## 74           6.1         2.8          4.7         1.2 versicolor
## 75           6.4         2.9          4.3         1.3 versicolor
## 76           6.6         3.0          4.4         1.4 versicolor
## 77           6.8         2.8          4.8         1.4 versicolor
## 78           6.7         3.0          5.0         1.7 versicolor
## 79           6.0         2.9          4.5         1.5 versicolor
## 80           5.7         2.6          3.5         1.0 versicolor
## 81           5.5         2.4          3.8         1.1 versicolor
## 82           5.5         2.4          3.7         1.0 versicolor
## 83           5.8         2.7          3.9         1.2 versicolor
## 84           6.0         2.7          5.1         1.6 versicolor
## 85           5.4         3.0          4.5         1.5 versicolor
## 86           6.0         3.4          4.5         1.6 versicolor
## 87           6.7         3.1          4.7         1.5 versicolor
## 88           6.3         2.3          4.4         1.3 versicolor
## 89           5.6         3.0          4.1         1.3 versicolor
## 90           5.5         2.5          4.0         1.3 versicolor
## 91           5.5         2.6          4.4         1.2 versicolor
## 92           6.1         3.0          4.6         1.4 versicolor
## 93           5.8         2.6          4.0         1.2 versicolor
## 94           5.0         2.3          3.3         1.0 versicolor
## 95           5.6         2.7          4.2         1.3 versicolor
## 96           5.7         3.0          4.2         1.2 versicolor
## 97           5.7         2.9          4.2         1.3 versicolor
## 98           6.2         2.9          4.3         1.3 versicolor
## 99           5.1         2.5          3.0         1.1 versicolor
## 100          5.7         2.8          4.1         1.3 versicolor
## 101          6.3         3.3          6.0         2.5  virginica
## 102          5.8         2.7          5.1         1.9  virginica
## 103          7.1         3.0          5.9         2.1  virginica
## 104          6.3         2.9          5.6         1.8  virginica
## 105          6.5         3.0          5.8         2.2  virginica
## 106          7.6         3.0          6.6         2.1  virginica
## 107          4.9         2.5          4.5         1.7  virginica
## 108          7.3         2.9          6.3         1.8  virginica
## 109          6.7         2.5          5.8         1.8  virginica
## 110          7.2         3.6          6.1         2.5  virginica
## 111          6.5         3.2          5.1         2.0  virginica
## 112          6.4         2.7          5.3         1.9  virginica
## 113          6.8         3.0          5.5         2.1  virginica
## 114          5.7         2.5          5.0         2.0  virginica
## 115          5.8         2.8          5.1         2.4  virginica
## 116          6.4         3.2          5.3         2.3  virginica
## 117          6.5         3.0          5.5         1.8  virginica
## 118          7.7         3.8          6.7         2.2  virginica
## 119          7.7         2.6          6.9         2.3  virginica
## 120          6.0         2.2          5.0         1.5  virginica
## 121          6.9         3.2          5.7         2.3  virginica
## 122          5.6         2.8          4.9         2.0  virginica
## 123          7.7         2.8          6.7         2.0  virginica
## 124          6.3         2.7          4.9         1.8  virginica
## 125          6.7         3.3          5.7         2.1  virginica
## 126          7.2         3.2          6.0         1.8  virginica
## 127          6.2         2.8          4.8         1.8  virginica
## 128          6.1         3.0          4.9         1.8  virginica
## 129          6.4         2.8          5.6         2.1  virginica
## 130          7.2         3.0          5.8         1.6  virginica
## 131          7.4         2.8          6.1         1.9  virginica
## 132          7.9         3.8          6.4         2.0  virginica
## 133          6.4         2.8          5.6         2.2  virginica
## 134          6.3         2.8          5.1         1.5  virginica
## 135          6.1         2.6          5.6         1.4  virginica
## 136          7.7         3.0          6.1         2.3  virginica
## 137          6.3         3.4          5.6         2.4  virginica
## 138          6.4         3.1          5.5         1.8  virginica
## 139          6.0         3.0          4.8         1.8  virginica
## 140          6.9         3.1          5.4         2.1  virginica
## 141          6.7         3.1          5.6         2.4  virginica
## 142          6.9         3.1          5.1         2.3  virginica
## 143          5.8         2.7          5.1         1.9  virginica
## 144          6.8         3.2          5.9         2.3  virginica
## 145          6.7         3.3          5.7         2.5  virginica
## 146          6.7         3.0          5.2         2.3  virginica
## 147          6.3         2.5          5.0         1.9  virginica
## 148          6.5         3.0          5.2         2.0  virginica
## 149          6.2         3.4          5.4         2.3  virginica
## 150          5.9         3.0          5.1         1.8  virginica

Mas, se transformarmos esse conjunto de dados numa tibble, automaticamente, enxuga a exibição, livrando a memória do computador (principalmente se o conjunto de dados é muito grande).

iris_tb <- as_tibble(iris) # as_tibble() transforma o data frame em tibble
iris_tb # exibe as 10 primeiras linhas do conjunto de dados
## # A tibble: 150 x 5
##    Sepal.Length Sepal.Width Petal.Length Petal.Width Species
##           <dbl>       <dbl>        <dbl>       <dbl> <fct>  
##  1          5.1         3.5          1.4         0.2 setosa 
##  2          4.9         3            1.4         0.2 setosa 
##  3          4.7         3.2          1.3         0.2 setosa 
##  4          4.6         3.1          1.5         0.2 setosa 
##  5          5           3.6          1.4         0.2 setosa 
##  6          5.4         3.9          1.7         0.4 setosa 
##  7          4.6         3.4          1.4         0.3 setosa 
##  8          5           3.4          1.5         0.2 setosa 
##  9          4.4         2.9          1.4         0.2 setosa 
## 10          4.9         3.1          1.5         0.1 setosa 
## # ... with 140 more rows

Como construir uma tibble?

Para se construir uma tibble manualmente, existem duas formas: tibble() ou tribble(). A diferença notória entre esses dois métodos reside na construção: a segunda é ideal se você quer organizar, no R, sua tibble em forma de tabela.

A função tibble() possui como estrutura a sintax:

tibble(
  var-1 = ...,
  var-2 = ...,
  ...   = ...,
  var-n = ...
)

Perceba que cada variavel é escrita linha por linha, separada por vírgula, no final. Por exemplo, o código abaixo produz a tibble:

dt_tibble <- tibble(
  nomes = c("Asponjo", "Locobel", "Aranildo", "Joanila"),
  matricula = c(2010123, 2010124, 2010125, 2010126),
  media = c(2.1, 1.4, 0.9, 0.5)
)

dt_tibble
## # A tibble: 4 x 3
##   nomes    matricula media
##   <chr>        <dbl> <dbl>
## 1 Asponjo    2010123   2.1
## 2 Locobel    2010124   1.4
## 3 Aranildo   2010125   0.9
## 4 Joanila    2010126   0.5

Já se quiséssemos usar uma trible para construir uma tibble, poderíamos fazer:

df_tribble <- tribble(
  ~nomes, ~matricula, ~media,
  "Asponjo", 2010123, 2.1,
  "Locobel", 2010124, 1.4,
  "Aranildo", 2010125, 0.9,
  "Joanilda", 2010126, 0.5
)

df_tribble
## # A tibble: 4 x 3
##   nomes    matricula media
##   <chr>        <dbl> <dbl>
## 1 Asponjo    2010123   2.1
## 2 Locobel    2010124   1.4
## 3 Aranildo   2010125   0.9
## 4 Joanilda   2010126   0.5

Note que antes do nome de cada variável, usamos o símbolo “~”.

Fica a critério pessoal a forma de construção de uma tibble.

O operador pipe

A ideia do pipe (existem diversas traduções, mas a que me faz comprender a ideia é a de “tubo”, como em uma “encanação”: você conecta as coisas), %>%, é, basicamente, escrever o encadeamento do código como pensamos; bem como escrevê-lo em etapas bem delimitadas, trazendo clareza em cada linha de código.

Para entendermos um pouco mais sobre o %>%, lembremos das funções compostas. Ao compormos três funções, por exemplo, escrevemos

\[h(g(f(x))).\] Resolvemos, então, de “dentro” para “fora” da expressão, ou seja, calculamos \(f(x)\), depois \(g(f(x))\) e, por fim \(h(g(f(x)))\).

Mas, nosso raciocínio é mais ou menos assim:

  1. "pegue o \(x\), então
  2. aplique em \(f()\), então
  3. aplique em \(g()\), então
  4. aplique em \(h()\)."

Podemos expressar esse memso pensamento usando o %>%, da seguinte forma:

x %>% f() %>% g() %>% h()

Ou, na prática, escrevemos assim:

x %>% 
  f() %>% 
  g() %>% 
  h()

Onde \(x\) representa, geralmente, algum conjunto de dados (dataset), no formato tibble; e, as funções f, g, h são algumas das funções dos pacotes do tidyverse.

Por exemplo, se mpg é nosso conjunto de dados, suponha que eu queira fazer os seguintes procedimentos:

  1. filtrar (filter) os carros que rodem acima de 15 milhas por galão e abaixo de 35 milhas por galão, na estrada (hwy);
  2. modificar (mutate) a variável hwy criando uma coluna, por nome km, que transforma milhas em km (1 mi = 1.60 km, aproximadamente);
  3. selecionar (select) essas milhas em km e a classe do carro (class)
  4. Plotar (ggplot) um bloxplot com transparência de 50% (alpha = 0.5), comparando essas classes de carros com as kilometragens espalhadas pelo gráfico (geom_jilter).

O código R ficaria assim:

mpg %>% 
  filter(hwy > 15  & hwy < 30) %>% 
  mutate(km = hwy * 1.60) %>% 
  select(class, km) %>% 
  ggplot(aes(class, km, fill = class)) +
  geom_boxplot(alpha = 0.5) +
  geom_jitter(aes(color = class))  

Veja que, em cada função, há argumentos que precisamos conhecer (aes, alpha, etc), além disso, o %>% só conecta até antes do comando ggplot. Depois deste, usa-se o símbolo +, ou seja, geom_boxplot() e geom_jiltter() são elementos do ggplot.

Apenas por curiosidade, o resultado do código acima fica assim:

Ainda estudaremos alguns outros elementos que podem ser melhorados nesse gráfico.

Fluxo da Análise de Dados com Tidyverse

Se você lembra do Fluxo de uma Análise de Dados, como na próxima figura, você pode relacionar algumas etapas desse fluxo, com alguns dos principais pacotes do tidyverse.

Especificamente, quatro deles serão abordados mais frequentemente.

readr tidyr dplyr ggplot2
Importar
Ordenar
Transformar
Visualizar

Na etapa de Modelagem poderíamos usar os pacotes broom ou modelr, bem como o conjunto de pacotes do Tidymodel; mas, não será objetivo desse curso!

E, na etapa de Comunicar, poderímos usar as inúmeras vertentes do R Markdown.

Por que usá-lo?

Creio que um dos argumentos mais persuasivos para usarmos o tidyverse na análise de dados diz respeito à sua filosofia de análise.

De fato, há um conjunto de práticas que uniformizam uma linguagem que, segundo os desenvolvedores, “tenta facilitar uma conversa entre um ser humano e um computador sobre dados”.

Isso é o que entendo ser importante: criar um conjunto de práticas que facilitam a usabilidade (principalmente para quem está começando); e, que também agregue no processamento dos dados. Essas duas ideias devem estar juntas: escrever para que humanos “comuns” (fora da área de programação) usem e que o computador processe adequadamente os dados.

Um dos desenvolvedores mais ativos do tidyverse, Hadley Wickham, criou um manifesto que diz respeito às ferramentas tidy, ou seja, formas de “organização” dos dados. Ele resumiu em quatro pilares:

  1. Reutilização de estruturas de dados já existentes;
  2. Composição entre funções de forma simples, com o %>%;
  3. Utilização da Programação Funcional;
  4. Feito para humanos

Você pode ver a argumentação que ele levanta aqui: The tidy tools manifesto.

Além disso, se você aprende a estrutura de um único pacote do tidyverse, isso facilitará o aprendizado de outros pacotes da mesma família, por conta da filosofia de construção envolvida nessas etapas.

Há também uma grande comunidade de voluntários que são entusiastas desse pacote e estão espalhados em diversos fóruns da internet, o que facilita a procura por ajuda na maioria dos pontos de nosso aprendizado.

Como usá-lo?

Obviamente, o primeiro passo é instalar o tidyverse. Isso só precisa ser feito uma única vez. E, por conta disso, é altamente aconselhável instalar os pacotes no CONSOLE do RStudio. Digite assim, no console (caso você ainda não tenha instalado) do RStudio, sendo que o nome do pacote deve estar entre aspas:

install.packages("tidyverse")

E, no editor de texto (“Quadrante 1”, ou “Nicho dos Scripts”, etc.), você deve carregar a biblioteca do tidyverse assim (veja que, agora, não precisa colocar aspas):

library(tidyverse)
-- Attaching packages ------------------------------------- tidyverse 1.3.0 --
v ggplot2 3.3.3     v purrr   0.3.4
v tibble  3.1.0     v dplyr   1.0.5
v tidyr   1.1.3     v stringr 1.4.0
v readr   1.4.0     v forcats 0.5.1
-- Conflicts ---------------------------------------- tidyverse_conflicts() --
x dplyr::filter() masks stats::filter()
x dplyr::lag()    masks stats::lag()

As mensagens que surgem (depois de certo tempo) são compostas de duas categorias: - Na primeira, Attaching packages, mostra quais pacotes do tidyverse foram carregados - Na segunda, Conflicts, como o prório nome diz, exibe os possíveis conflitos entre os nomes dos pacotes do tidyverse e do R Base. Quando você quiser explicitar o pacote da função, use a notação pacote::funcao(). Por exemplo, a função filter() existe, tanto no pacote stats (do R Base), quanto no dplyr (do Tidyverse); então, se você quiser usar a funcionalidade derivada do pacote dplyr, faça: dplyr::filter().

No tem que, uma coisa é a instalação (que ocorre apens uma vez em cada computador) e uma outra é o carregamento (que deve ser feito toda vez, em cada projeto). Na instalação, o nome do pacote deve estar entre aspas, mas no carregamento das bibliotecas (library) não.

Quando você usa o comando library(tidyverse), 8 pacotes (veja mais acima) são carregados diretamente. Você pode usar todas as funcionalidade deles. Caso você queira usar um outro pacote do tidyverse que não seja os 8 principais, deve carregar a biblioteca diretamente. Por exemplo, se você quiser usar o rvest, para webscraping, você deve usar, também, library(rvest).

Dicas

De Livros

Existem uma infinidade de referências na internet. Tudo dependerá de suas necessidades. Vou colocar aqui a clássica para análise de dados:

Caso você queira o mesmo livro, mas em Espanhol, pode acessar aqui:

Há, também, um livro bastante conveniente se você quiser resultados diretos e reprotutíveis, como um livro de receitas:

Dicas úteis com o RStudio

Organização do Projeto

Antes de iniciar um Projeto no RStudio, pense em sua organização: onde você colocará os arquivos .R, ou .Rmd; quais pastas você criará, como a de figuras, dados brutos, dados limpos, etc. Caso você queira se aprofundar, veja esse artigo sobre o tema:

Há um pacote no R, denominado usethis4, que automatiza muitos procedimentos na criação de projetos, inclusive na interação com o GitHub. Usaremos esse pacote em algumas situações ao longo da disciplina. Você pode instalá-lo assim:

install.packages(usethis)

Atalhos úteis no RStudio

Atalho O que produz
01 Ctrl + Enter no editor de texto, compila uma linha ou conjunto de códigos
02 Alt + - <-
03 Ctrl + Shift + M %>%
04 Ctrl + Shift + N um novo arquivo .R
05 Ctrl + Shift + c comenta várias linhas selecionadas
06 Ctrl + d apaga uma linha inteira
07 Ctrl + Alt + I em arquivos R Markdown, gera blocos de código
08 Ctrl + S salva um arquivo
09 Ctrl + L limpa o console (não limpa a memória, apenas deixa clean)
10 Tab recurso muito útil de “autocompletar” comandos ou caminhos de figuras, etc.

Para limpar a memória do projeto, usamos o comando: rm(list = ls()). Você pode digitá-lo no console, ou colocá-lo no início de seu script, por exemplo. Ele é últil quando você começa uma nova análise no mesmo projeto. Tal comando, limpa a memória de seu projeto; mas, não apaga os dados! Apenas limpa as variáveis usadas até aquele momento)

Folhas de Dicas (Cheat Sheet)

Existem folhas de dicas que podem ajudar nos nomes dos comandos e funcionalidades dos pacotes (ou outras coisas) em R.

Um exemplo dessas folhas de dicas, que você pode ver logo abaixo5, é essa para o pacote dplyr:

Inclusive há traduções em português de algumas delas (mas, estão desatualizadas em alguns pontos).

Para ter acesso às Cheat-Sheet, veja o site: RStudio Cheat Sheets.

Eu listei algumas que podem ajudar vocês no início:

  • R Studio. Fala sobre das principais funcionalidades, atalhos, etc, do R Studio;
  • readr e tidyr. Reune dicas dos pacotes de importação (readr) e organização tidy (tidyr) dos dados;
  • dplyr. Dicas sobre o pacote dplyr, para manipulação, limpeza, transformação, etc. dos dados;
  • ggplot2. Dicas sobre visualização dos dados com o ggplot2;
  • R Markdown. Folha de Dicas sobre R Markdown. Há, também, um Guia de Referência do R Markdown.

É isso! Nos próximos textos falaremos mais sobre os principais pacotes do tidyverse que usaremos na disciplina!


                         _____ _     _                               
                        |_   _(_)   | |                              
                          | |  _  __| |_   ___   _____ _ __ ___  ___ 
                          | | | |/ _` | | | \ \ / / _ \ '__/ __|/ _ \
                          | | | | (_| | |_| |\ V /  __/ |  \__ \  __/
                          \_/ |_|\__,_|\__, | \_/ \___|_|  |___/\___|
                                        __/ |                        
                                       |___/                         

  1. por isso, a sua instalação pode ser um pouco demorada, dependendo da velocidade de sua internet. Além disso, você pode verificar todos os pacotes do tidyverse digitando no console o comando tidyverse::tidyverse_packages()↩︎

  2. pelo menos na versão 1.3.0↩︎

  3. Você também pode pesquisar sobre os outros pacotes do tidyverse, exibidos na tabela “Instalados” digitando nome-do-pacote.tidyverse.org; onde, na variável nome-do-pacote, deves substiruir pelo nome do pacote desejado↩︎

  4. que inclusive segue a filosofia dos pacotes da tidyverse↩︎

  5. se você clicar na imagem, será direcionado para o pdf completo da folha de dica↩︎