introR: introdução à linguagem R
15 de outubro de 2025
Artwork by @allison_horst
Mudança de paradigma
Quantidade de dados
Abram o script
03_script_r_introduction.R
O tidyverse
é um conjunto de pacotes designados para Data Science
Todos os pacotes compartilham uma filosofia de design, gramática e estruturas de dados
É um “dialeto novo” para a linguagem R
tidy: organizado, arrumado, ordenado
verse: universo
Wickham, Hadley. “Tidy data.” Journal of Statistical Software 59.10 (2014): 1-23.
Wickham, Hadley, et al. “Welcome to the Tidyverse.” Journal of Open Source Software 4.43 (2019): 1686.
Tradução para o português
R para Ciência de Dados (2ª edição)
Para utilizar os pacotes é preciso instalar e carregar o pacote tidyverse
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr 1.1.4 ✔ readr 2.1.5
✔ forcats 1.0.1 ✔ stringr 1.5.2
✔ ggplot2 4.0.0 ✔ tibble 3.3.0
✔ lubridate 1.9.4 ✔ tidyr 1.3.1
✔ purrr 1.1.0
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
Listar os pacotes
[1] "broom" "conflicted" "cli" "dbplyr"
[5] "dplyr" "dtplyr" "forcats" "ggplot2"
[9] "googledrive" "googlesheets4" "haven" "hms"
[13] "httr" "jsonlite" "lubridate" "magrittr"
[17] "modelr" "pillar" "purrr" "ragg"
[21] "readr" "readxl" "reprex" "rlang"
[25] "rstudioapi" "rvest" "stringr" "tibble"
[29] "tidyr" "xml2" "tidyverse"
Todas as funções dos pacotes tidyverse
usam fonte minúscula
e _
para separar os nomes internos das funções (snake_case
)
read_csv()
read_xlsx()
as_tibble()
left_join()
group_by()
Geralmente indica-se de quais pacotes as funções são utilizadas (pacote::função
) para evitar erros com outros pacotes
readr::read_csv()
readxl::read_xlsx()
tibble::as_tibble()
dplyr::left_join()
dplyr::group_by()
Carrega e salva grandes arquivos de forma rápida
As funções fornecem medidores de progresso (big data)
Classificam o modo (tipo dos dados) de cada coluna
A classe do objeto atribuído é tibble
Funções:
read_csv()
: lê arquivos Comma-separated values
read_csv2()
: lê arquivos Comma-separated values (separado por ;)
read_tsv()
: lê arquivos Tab-separated values
read_delim()
: lê arquivos delim-separated values
write_csv()
: escreve arquivos Comma-separated values
write_csv2()
: escreve arquivos Comma-separated values (separado por ;)
write_delim()
: escreve arquivos delim-separated values
Caminho no computador para importar e exportar dados
Definir diretório
Conferir diretório
ATLANTIC AMPHIBIANS: a dataset of amphibian communities from the Atlantic Forests of South America
Formato .csv
# A tibble: 1,163 × 25
id reference_number species_number record sampled_habitat active_methods
<chr> <dbl> <dbl> <chr> <chr> <chr>
1 amp1001 1001 19 ab fo,ll as
2 amp1002 1002 16 co fo,la,ll as
3 amp1003 1002 14 co fo,la,ll as
4 amp1004 1002 13 co fo,la,ll as
5 amp1005 1003 30 co fo,ll,br as
6 amp1006 1004 42 co tp,pp,la,ll,is <NA>
7 amp1007 1005 23 co sp as
8 amp1008 1005 19 co sp,la,sw as,sb,tr
9 amp1009 1005 13 ab fo <NA>
10 amp1010 1006 1 ab fo <NA>
# ℹ 1,153 more rows
# ℹ 19 more variables: passive_methods <chr>, complementary_methods <chr>,
# period <chr>, month_start <dbl>, year_start <dbl>, month_finish <dbl>,
# year_finish <dbl>, effort_months <dbl>, country <chr>, state <chr>,
# state_abbreviation <chr>, municipality <chr>, site <chr>, latitude <dbl>,
# longitude <dbl>, coordinate_precision <chr>, altitude <dbl>,
# temperature <dbl>, precipitation <dbl>
Formato .txt
# A tibble: 1,163 × 25
id reference_number species_number record sampled_habitat active_methods
<chr> <dbl> <dbl> <chr> <chr> <chr>
1 amp1001 1001 19 ab fo,ll as
2 amp1002 1002 16 co fo,la,ll as
3 amp1003 1002 14 co fo,la,ll as
4 amp1004 1002 13 co fo,la,ll as
5 amp1005 1003 30 co fo,ll,br as
6 amp1006 1004 42 co tp,pp,la,ll,is <NA>
7 amp1007 1005 23 co sp as
8 amp1008 1005 19 co sp,la,sw as,sb,tr
9 amp1009 1005 13 ab fo <NA>
10 amp1010 1006 1 ab fo <NA>
# ℹ 1,153 more rows
# ℹ 19 more variables: passive_methods <chr>, complementary_methods <chr>,
# period <chr>, month_start <dbl>, year_start <dbl>, month_finish <dbl>,
# year_finish <dbl>, effort_months <dbl>, country <chr>, state <chr>,
# state_abbreviation <chr>, municipality <chr>, site <chr>, latitude <dbl>,
# longitude <dbl>, coordinate_precision <chr>, altitude <dbl>,
# temperature <dbl>, precipitation <dbl>
Pacotes para importar e exportar planilhas no formato Excel®
Carrega e salva grandes arquivos de forma rápida
As funções fornecem medidores de progresso (big data)
Classificam o modo (tipo dos dados) de cada coluna
A classe do objeto atribuído é tibble
Funções:
read_excel()
: lê arquivos de planilhas Excel®
read_xls()
: lê arquivos de planilhas Excel® (antes de 2010)
write_xlsx()
: escreve arquivos de planilhas Excel®
Formato .xlsx
# A tibble: 1,163 × 25
id reference_number species_number record sampled_habitat active_methods
<chr> <dbl> <dbl> <chr> <chr> <chr>
1 amp1001 1001 19 ab fo,ll as
2 amp1002 1002 16 co fo,la,ll as
3 amp1003 1002 14 co fo,la,ll as
4 amp1004 1002 13 co fo,la,ll as
5 amp1005 1003 30 co fo,ll,br as
6 amp1006 1004 42 co tp,pp,la,ll,is NA
7 amp1007 1005 23 co sp as
8 amp1008 1005 19 co sp,la,sw as,sb,tr
9 amp1009 1005 13 ab fo NA
10 amp1010 1006 1 ab fo NA
# ℹ 1,153 more rows
# ℹ 19 more variables: passive_methods <chr>, complementary_methods <chr>,
# period <chr>, month_start <chr>, year_start <chr>, month_finish <chr>,
# year_finish <chr>, effort_months <chr>, country <chr>, state <chr>,
# state_abbreviation <chr>, municipality <chr>, site <chr>, latitude <dbl>,
# longitude <dbl>, coordinate_precision <chr>, altitude <dbl>,
# temperature <chr>, precipitation <chr>
Diversos formatos
Dados importados de planilhas eletrônicas são data frames (quadro de dados)
tibble
(classe tbl_df
) é um tipo especial de data frame
Classe adequada para o funcionamento das das funções do tidyverse
Descrição dos dados: linhas (Rows) e colunas (Columns)
Descrição das colunas: numbers(int, dbl), character(chr), logical(lgl) ou factor(fctr)
Rows: 1,163
Columns: 25
$ id <chr> "amp1001", "amp1002", "amp1003", "amp1004", "amp…
$ reference_number <dbl> 1001, 1002, 1002, 1002, 1003, 1004, 1005, 1005, …
$ species_number <dbl> 19, 16, 14, 13, 30, 42, 23, 19, 13, 1, 1, 2, 4, …
$ record <chr> "ab", "co", "co", "co", "co", "co", "co", "co", …
$ sampled_habitat <chr> "fo,ll", "fo,la,ll", "fo,la,ll", "fo,la,ll", "fo…
$ active_methods <chr> "as", "as", "as", "as", "as", "NA", "as", "as,sb…
$ passive_methods <chr> "pt", "pt", "pt", "pt", "NA", "NA", "NA", "NA", …
$ complementary_methods <chr> "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", …
$ period <chr> "mo,da,tw,ni", "mo,da,tw,ni", "mo,da,tw,ni", "mo…
$ month_start <chr> "9", "12", "12", "12", "7", "NA", "4", "4", "4",…
$ year_start <chr> "2000", "2007", "2007", "2007", "1988", "NA", "2…
$ month_finish <chr> "1", "5", "5", "5", "8", "NA", "4", "4", "4", "7…
$ year_finish <chr> "2002", "2009", "2009", "2009", "2001", "NA", "2…
$ effort_months <chr> "16", "17", "17", "17", "157", "NA", "24", "24",…
$ country <chr> "Brazil", "Brazil", "Brazil", "Brazil", "Brazil"…
$ state <chr> "Piauí", "Ceará", "Ceará", "Ceará", "Ceará", "Ce…
$ state_abbreviation <chr> "BR-PI", "BR-CE", "BR-CE", "BR-CE", "BR-CE", "BR…
$ municipality <chr> "Canto do Buriti", "São Gonçalo do Amarante", "S…
$ site <chr> "Parque Nacional Serra das Confusões", "Dunas", …
$ latitude <dbl> -8.680000, -3.545527, -3.574194, -3.515250, -4.2…
$ longitude <dbl> -43.42194, -38.85783, -38.88869, -38.91880, -38.…
$ coordinate_precision <chr> "gm", "dd", "dd", "dd", "gm", "NA", "gms", "gms"…
$ altitude <dbl> 543, 15, 29, 25, 750, 745, 863, 878, 826, 93, 35…
$ temperature <chr> "24.98", "26.53", "26.45", "26.55", "21.35", "20…
$ precipitation <chr> "853", "1318", "1248", "1376", "1689", "1249", "…
Artista surrealista belga
“Ceci n’est pas une pipe”
Isso não é um cachimbo
Pipe pode ser traduzido como “cano” ou “tubo”
Permite o “encadeamento” de várias funções sem armazenar resultados intermediários
Captura o resultado de uma função e torna a entrada da próxima função
Os códigos se tornam mais simples, pois permite a leitura sequencial do mesmo
Operador pipe: %>%
Atalho: crtl + shift + M
Função composta no R
Sem pipe
Com pipe
Sem pipe
Com pipe
Reescreva cada uma das operações utilizando pipes %>%
log10(cumsum(1:100))
sum(sqrt(abs(rnorm(100))))
sum(log((sample(1:10, 10000, rep = TRUE)))
05:00
Solução
Solução
Solução
Dados de medidas de pinguins chamados palmerpenguins
Dados coletados e disponibilizados pela Dra. Kristen Gorman e pela Palmer Station, Antarctica LTER, membro da Long Term Ecological Research Network
Dois conjuntos de dados:
penguins_raw
(dados brutos)
penguins
(versão simplificada)
Funções para tornar um conjunto de dados tidy (organizados), facilitando a manipulação, modelagem e visualização
Um conjunto de dados é condiderando tidy quando:
Artwork by @allison_horst
Une dados de múltiplas colunas em apenas uma coluna
# A tibble: 6 × 3
Region Island region_island
<chr> <chr> <chr>
1 Anvers Torgersen Anvers, Torgersen
2 Anvers Torgersen Anvers, Torgersen
3 Anvers Torgersen Anvers, Torgersen
4 Anvers Torgersen Anvers, Torgersen
5 Anvers Torgersen Anvers, Torgersen
6 Anvers Torgersen Anvers, Torgersen
Separa caracteres de uma coluna em múltiplas colunas
# A tibble: 6 × 3
Stage stage egg_stage
<chr> <chr> <chr>
1 Adult, 1 Egg Stage Adult 1 Egg Stage
2 Adult, 1 Egg Stage Adult 1 Egg Stage
3 Adult, 1 Egg Stage Adult 1 Egg Stage
4 Adult, 1 Egg Stage Adult 1 Egg Stage
5 Adult, 1 Egg Stage Adult 1 Egg Stage
6 Adult, 1 Egg Stage Adult 1 Egg Stage
Remove linhas com NA
de todas as colunas
# A tibble: 6 × 17
studyName `Sample Number` Species Region Island Stage `Individual ID`
<chr> <dbl> <chr> <chr> <chr> <chr> <chr>
1 PAL0708 7 Adelie Penguin … Anvers Torge… Adul… N4A1
2 PAL0708 8 Adelie Penguin … Anvers Torge… Adul… N4A2
3 PAL0708 29 Adelie Penguin … Anvers Biscoe Adul… N18A1
4 PAL0708 30 Adelie Penguin … Anvers Biscoe Adul… N18A2
5 PAL0708 39 Adelie Penguin … Anvers Dream Adul… N25A1
6 PAL0809 69 Adelie Penguin … Anvers Torge… Adul… N32A1
# ℹ 10 more variables: `Clutch Completion` <chr>, `Date Egg` <date>,
# `Culmen Length (mm)` <dbl>, `Culmen Depth (mm)` <dbl>,
# `Flipper Length (mm)` <dbl>, `Body Mass (g)` <dbl>, Sex <chr>,
# `Delta 15 N (o/oo)` <dbl>, `Delta 13 C (o/oo)` <dbl>, Comments <chr>
Remove linhas com NA
de uma única coluna
# A tibble: 6 × 1
Comments
<chr>
1 Not enough blood for isotopes.
2 Adult not sampled.
3 Nest never observed with full clutch.
4 Nest never observed with full clutch.
5 No blood sample obtained.
6 No blood sample obtained for sexing.
Funções que facilitam a manipulação de dados
Gramática simples que contém funções verbais para a manipulação de dados
mutate()
, select()
, filter()
, arrange()
, summarise()
, slice()
, rename()
, etc.across()
, if_any()
, if_all()
, where()
, starts_with()
, ends_with()
, contains()
, etc.group_by()
e ungroup()
inner_join()
, full_join()
, left_join()
, right_join()
, etc.bind_rows()
e bind_cols()
n()
, n_distinct()
, first()
, last()
, nth()
, etc.Colunas
relocate()
: muda a ordem das colunas
rename()
: muda o nome das colunas
select()
: seleciona colunas pelo nome ou posição
pull()
: seleciona uma coluna como vetor
mutate()
: adiciona novas colunas ou resultados em colunas existentes
Linhas
arrange()
: reordena as linhas com base nos valores de colunas
filter()
: seleciona linhas com base em valores de colunas
slice()
: seleciona linhas de diferente formas
distinct()
: remove linhas com valores repetidos com base nos valores de colunas
Agrupamento
count()
: conta observações para uma ou mais coluna
group_by()
: agrupa linhas pelos valores das colunas
summarise()
: resume os dados através de funções considerando valores das colunas
O tibble
é sempre o primeiro argumento das funções verbais
Todas seguem a mesma sintaxe:
As funções verbais não modificam o tibble original
Reordena colunas por nome ou posição
# A tibble: 6 × 8
species island sex year bill_length_mm bill_depth_mm flipper_length_mm
<fct> <fct> <fct> <int> <dbl> <dbl> <int>
1 Adelie Torgersen male 2007 39.1 18.7 181
2 Adelie Torgersen female 2007 39.5 17.4 186
3 Adelie Torgersen female 2007 40.3 18 195
4 Adelie Torgersen <NA> 2007 NA NA NA
5 Adelie Torgersen female 2007 36.7 19.3 193
6 Adelie Torgersen male 2007 39.3 20.6 190
# ℹ 1 more variable: body_mass_g <int>
Reordena colunas por nome ou posição
# A tibble: 6 × 8
species island sex year bill_length_mm bill_depth_mm flipper_length_mm
<fct> <fct> <fct> <int> <dbl> <dbl> <int>
1 Adelie Torgersen male 2007 39.1 18.7 181
2 Adelie Torgersen female 2007 39.5 17.4 186
3 Adelie Torgersen female 2007 40.3 18 195
4 Adelie Torgersen <NA> 2007 NA NA NA
5 Adelie Torgersen female 2007 36.7 19.3 193
6 Adelie Torgersen male 2007 39.3 20.6 190
# ℹ 1 more variable: body_mass_g <int>
Renomeia colunas
# A tibble: 6 × 8
species island bill_length bill_depth flipper_length body_mass sex year
<fct> <fct> <dbl> <dbl> <int> <int> <fct> <int>
1 Adelie Torgersen 39.1 18.7 181 3750 male 2007
2 Adelie Torgersen 39.5 17.4 186 3800 female 2007
3 Adelie Torgersen 40.3 18 195 3250 female 2007
4 Adelie Torgersen NA NA NA NA <NA> 2007
5 Adelie Torgersen 36.7 19.3 193 3450 female 2007
6 Adelie Torgersen 39.3 20.6 190 3650 male 2007
Seleciona colunas pela posição ou nome
# A tibble: 6 × 4
bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
<dbl> <dbl> <int> <int>
1 39.1 18.7 181 3750
2 39.5 17.4 186 3800
3 40.3 18 195 3250
4 NA NA NA NA
5 36.7 19.3 193 3450
6 39.3 20.6 190 3650
Seleciona colunas pela posição ou nome
# A tibble: 6 × 4
bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
<dbl> <dbl> <int> <int>
1 39.1 18.7 181 3750
2 39.5 17.4 186 3800
3 40.3 18 195 3250
4 NA NA NA NA
5 36.7 19.3 193 3450
6 39.3 20.6 190 3650
Remove colunas pela posição ou nome
# A tibble: 6 × 4
species island sex year
<fct> <fct> <fct> <int>
1 Adelie Torgersen male 2007
2 Adelie Torgersen female 2007
3 Adelie Torgersen female 2007
4 Adelie Torgersen <NA> 2007
5 Adelie Torgersen female 2007
6 Adelie Torgersen male 2007
Seleciona ou remove colunas por um padrão nos nomes
# A tibble: 6 × 3
bill_length_mm bill_depth_mm flipper_length_mm
<dbl> <dbl> <int>
1 39.1 18.7 181
2 39.5 17.4 186
3 40.3 18 195
4 NA NA NA
5 36.7 19.3 193
6 39.3 20.6 190
Seleciona uma coluna como vetor
Adiciona colunas novas ou advindas de operações
# A tibble: 6 × 9
species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
<fct> <fct> <dbl> <dbl> <int> <int>
1 Adelie Torgersen 39.1 18.7 181 3750
2 Adelie Torgersen 39.5 17.4 186 3800
3 Adelie Torgersen 40.3 18 195 3250
4 Adelie Torgersen NA NA NA NA
5 Adelie Torgersen 36.7 19.3 193 3450
6 Adelie Torgersen 39.3 20.6 190 3650
# ℹ 3 more variables: body_mass_kg <dbl>, sex <fct>, year <int>
Reordena linhas de forma crescente pelos valores de uma coluna
# A tibble: 6 × 8
species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
<fct> <fct> <dbl> <dbl> <int> <int>
1 Chinstrap Dream 46.9 16.6 192 2700
2 Adelie Biscoe 36.5 16.6 181 2850
3 Adelie Biscoe 36.4 17.1 184 2850
4 Adelie Biscoe 34.5 18.1 187 2900
5 Adelie Dream 33.1 16.1 178 2900
6 Adelie Torgersen 38.6 17 188 2900
# ℹ 2 more variables: sex <fct>, year <int>
Reordena linhas de forma decrescente pelos valores de uma coluna
# A tibble: 6 × 8
species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
<fct> <fct> <dbl> <dbl> <int> <int>
1 Gentoo Biscoe 49.2 15.2 221 6300
2 Gentoo Biscoe 59.6 17 230 6050
3 Gentoo Biscoe 51.1 16.3 220 6000
4 Gentoo Biscoe 48.8 16.2 222 6000
5 Gentoo Biscoe 45.2 16.4 223 5950
6 Gentoo Biscoe 49.8 15.9 229 5950
# ℹ 2 more variables: sex <fct>, year <int>
Reordena linhas de forma decrescente pelos valores de uma coluna
# A tibble: 6 × 8
species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
<fct> <fct> <dbl> <dbl> <int> <int>
1 Gentoo Biscoe 49.2 15.2 221 6300
2 Gentoo Biscoe 59.6 17 230 6050
3 Gentoo Biscoe 51.1 16.3 220 6000
4 Gentoo Biscoe 48.8 16.2 222 6000
5 Gentoo Biscoe 45.2 16.4 223 5950
6 Gentoo Biscoe 49.8 15.9 229 5950
# ℹ 2 more variables: sex <fct>, year <int>
Filtra linhas por valores de uma coluna
# A tibble: 6 × 8
species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
<fct> <fct> <dbl> <dbl> <int> <int>
1 Adelie Torgersen 39.1 18.7 181 3750
2 Adelie Torgersen 39.5 17.4 186 3800
3 Adelie Torgersen 40.3 18 195 3250
4 Adelie Torgersen NA NA NA NA
5 Adelie Torgersen 36.7 19.3 193 3450
6 Adelie Torgersen 39.3 20.6 190 3650
# ℹ 2 more variables: sex <fct>, year <int>
Filtra linhas por valores de várias colunas
# A tibble: 6 × 8
species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
<fct> <fct> <dbl> <dbl> <int> <int>
1 Adelie Torgersen 39.5 17.4 186 3800
2 Adelie Torgersen 40.3 18 195 3250
3 Adelie Torgersen 36.7 19.3 193 3450
4 Adelie Torgersen 38.9 17.8 181 3625
5 Adelie Torgersen 41.1 17.6 182 3200
6 Adelie Torgersen 36.6 17.8 185 3700
# ℹ 2 more variables: sex <fct>, year <int>
Filtra linhas por vários valores de várias colunas
# A tibble: 6 × 8
species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
<fct> <fct> <dbl> <dbl> <int> <int>
1 Adelie Torgersen 39.5 17.4 186 3800
2 Adelie Torgersen 40.3 18 195 3250
3 Adelie Torgersen 36.7 19.3 193 3450
4 Adelie Torgersen 38.9 17.8 181 3625
5 Adelie Torgersen 41.1 17.6 182 3200
6 Adelie Torgersen 36.6 17.8 185 3700
# ℹ 2 more variables: sex <fct>, year <int>
Seleciona linhas por intervalos, indicando quais linhas desejamos
# A tibble: 6 × 8
species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
<fct> <fct> <dbl> <dbl> <int> <int>
1 Adelie Torgersen 39.1 18.7 181 3750
2 Adelie Torgersen 40.3 18 195 3250
3 Chinstrap Dream 50.6 19.4 193 3800
4 Chinstrap Dream 46.7 17.9 195 3300
5 Chinstrap Dream 52 19 197 4150
6 Chinstrap Dream 50.5 18.4 200 3400
# ℹ 2 more variables: sex <fct>, year <int>
Seleciona linhas iniciais
# A tibble: 5 × 8
species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
<fct> <fct> <dbl> <dbl> <int> <int>
1 Adelie Torgersen 39.1 18.7 181 3750
2 Adelie Torgersen 39.5 17.4 186 3800
3 Adelie Torgersen 40.3 18 195 3250
4 Adelie Torgersen NA NA NA NA
5 Adelie Torgersen 36.7 19.3 193 3450
# ℹ 2 more variables: sex <fct>, year <int>
Seleciona linhas aleatoriamente, com e sem reposição
# A tibble: 6 × 8
species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
<fct> <fct> <dbl> <dbl> <int> <int>
1 Adelie Dream 39 18.7 185 3650
2 Adelie Torgersen 37.7 19.8 198 3500
3 Adelie Dream 36 17.9 190 3450
4 Adelie Torgersen 41.5 18.3 195 4300
5 Chinstrap Dream 50.5 18.4 200 3400
6 Adelie Biscoe 38.2 18.1 185 3950
# ℹ 2 more variables: sex <fct>, year <int>
Retira linhas com valores duplicados com base nos valores de colunas
Retira linhas com valores duplicados com base nos valores de colunas, mas mantendo as colunas
# A tibble: 6 × 8
species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
<fct> <fct> <dbl> <dbl> <int> <int>
1 Adelie Torgersen 39.1 18.7 181 3750
2 Adelie Torgersen 39.5 17.4 186 3800
3 Adelie Torgersen 40.3 18 195 3250
4 Adelie Torgersen NA NA NA NA
5 Adelie Torgersen 36.7 19.3 193 3450
6 Adelie Torgersen 39.3 20.6 190 3650
# ℹ 2 more variables: sex <fct>, year <int>
Conta valores de uma ou mais colunas (variáveis categóricas)
Conta valores de uma ou mais colunas (variáveis categóricas)
Conta valores de uma ou mais colunas (variáveis categóricas) ordenando a contagem
# A tibble: 5 × 3
species island n
<fct> <fct> <int>
1 Gentoo Biscoe 124
2 Chinstrap Dream 68
3 Adelie Dream 56
4 Adelie Torgersen 52
5 Adelie Biscoe 44
Transforma um tibble
em um tibble agrupado
, onde as operações são realizadas “por grupo”
# A tibble: 6 × 8
# Groups: species [1]
species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
<fct> <fct> <dbl> <dbl> <int> <int>
1 Adelie Torgersen 39.1 18.7 181 3750
2 Adelie Torgersen 39.5 17.4 186 3800
3 Adelie Torgersen 40.3 18 195 3250
4 Adelie Torgersen NA NA NA NA
5 Adelie Torgersen 36.7 19.3 193 3450
6 Adelie Torgersen 39.3 20.6 190 3650
# ℹ 2 more variables: sex <fct>, year <int>
Agrega ou resume dados através de funções síntese
# A tibble: 3 × 3
species body_mass_g_mean body_mass_g_sd
<fct> <dbl> <dbl>
1 Adelie 3701. 459.
2 Chinstrap 3733. 384.
3 Gentoo 5076. 504.
bind_rows()
e bind_cols()
Combina dados por linhas ou por colunas
# A tibble: 5 × 8
species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
<fct> <fct> <dbl> <dbl> <int> <int>
1 Adelie Torgersen 39.1 18.7 181 3750
2 Adelie Torgersen 39.5 17.4 186 3800
3 Adelie Torgersen 40.3 18 195 3250
4 Adelie Torgersen NA NA NA NA
5 Adelie Torgersen 36.7 19.3 193 3450
# ℹ 2 more variables: sex <fct>, year <int>
# A tibble: 5 × 8
species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
<fct> <fct> <dbl> <dbl> <int> <int>
1 Adelie Biscoe 39.6 17.7 186 3500
2 Adelie Biscoe 40.1 18.9 188 4300
3 Adelie Biscoe 35 17.9 190 3450
4 Adelie Biscoe 42 19.5 200 4050
5 Adelie Biscoe 34.5 18.1 187 2900
# ℹ 2 more variables: sex <fct>, year <int>
bind_rows()
e bind_cols()
Combina dados por linhas
# A tibble: 6 × 9
id species island bill_length_mm bill_depth_mm flipper_length_mm
<chr> <fct> <fct> <dbl> <dbl> <int>
1 1 Adelie Torgersen 39.1 18.7 181
2 1 Adelie Torgersen 39.5 17.4 186
3 1 Adelie Torgersen 40.3 18 195
4 1 Adelie Torgersen NA NA NA
5 1 Adelie Torgersen 36.7 19.3 193
6 2 Adelie Biscoe 39.6 17.7 186
# ℹ 3 more variables: body_mass_g <int>, sex <fct>, year <int>
bind_rows()
e bind_cols()
Combina dados por colunas
# A tibble: 5 × 16
species...1 island...2 bill_length_mm...3 bill_depth_mm...4
<fct> <fct> <dbl> <dbl>
1 Adelie Torgersen 39.1 18.7
2 Adelie Torgersen 39.5 17.4
3 Adelie Torgersen 40.3 18
4 Adelie Torgersen NA NA
5 Adelie Torgersen 36.7 19.3
# ℹ 12 more variables: flipper_length_mm...5 <int>, body_mass_g...6 <int>,
# sex...7 <fct>, year...8 <int>, species...9 <fct>, island...10 <fct>,
# bill_length_mm...11 <dbl>, bill_depth_mm...12 <dbl>,
# flipper_length_mm...13 <int>, body_mass_g...14 <int>, sex...15 <fct>,
# year...16 <int>
dplyr
para manejar colunasComprimento
Substituir
[1] "penguyns"
Separar
Extrair pela posição
Extrair por padrão
Inserir espacos em branco
[1] " penguins"
[1] "penguins "
[1] " penguins "
Remover espaços em branco
[1] "penguins "
[1] " penguins"
[1] "penguins"
Alterar minúsculas e maiúsculas
[1] "penguins"
[1] "PENGUINS"
[1] "Palmer penguins"
[1] "Palmer Penguins"
Ordenar
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s"
[20] "t" "u" "v" "w" "x" "y" "z"
[1] "z" "y" "x" "w" "v" "u" "t" "s" "r" "q" "p" "o" "n" "m" "l" "k" "j" "i" "h"
[20] "g" "f" "e" "d" "c" "b" "a"
Alterar valores das colunas
Alterar nome das colunas
dplyr
para manejar colunasConverter dados de string
para factor
[1] Adelie Penguin (Pygoscelis adeliae) Adelie Penguin (Pygoscelis adeliae)
[3] Adelie Penguin (Pygoscelis adeliae) Adelie Penguin (Pygoscelis adeliae)
[5] Adelie Penguin (Pygoscelis adeliae) Adelie Penguin (Pygoscelis adeliae)
3 Levels: Adelie Penguin (Pygoscelis adeliae) ...
Mudar o nome dos níveis
Inverter os níveis
[1] Adelie Adelie Adelie Adelie Adelie Adelie
Levels: Gentoo Chinstrap Adelie
Especificar a ordem dos níveis
Níveis pela ordem em que aparecem
[1] Adelie Adelie Adelie Adelie Adelie Adelie
Levels: Adelie Gentoo Chinstrap
Ordem (decrescente) de frequência
Agregação de níveis raros em um nível
[1] Adelie Adelie Adelie Adelie Adelie Adelie
Levels: Adelie Gentoo Other
Transformar várias colunas em fator
Artwork by @allison_horst
Tipos de dados
Data: tempo em dias, meses e anos <date>
Horário: tempo dentro de um dia <time>
Data-horário: tempo em um instante (data mais tempo) <dttm>
Para trabalhar exclusivamente com horários, podemos utilizar o pacote
Algumas letras possuem significados temporais, sendo abreviações de diferentes períodos em inglês:
year (ano), month (mês)
weak (semana), day (dia)
hour (hora), minute (minuto) e second (segundo)
Data e horários atuais
Existem três maneiras de criar um dado de data/horário
1. String ou caracter
y
(ano), m
(mês) e d
(dia)1. String ou caracter
Essas funções também aceitam números sem aspas, além funcionarem em outros diversos formatos
1. String ou caracter
Especificar horários e Fusos horários
2. Componentes individuais de data e horário
# A tibble: 3 × 5
ano mes dia hora minuto
<dbl> <dbl> <dbl> <dbl> <dbl>
1 2021 1 12 2 2
2 2021 2 20 14 44
3 2021 3 31 18 55
2. Componentes individuais de data e horário
# A tibble: 3 × 6
ano mes dia hora minuto data
<dbl> <dbl> <dbl> <dbl> <dbl> <dttm>
1 2021 1 12 2 2 2021-01-12 02:02:00
2 2021 2 20 14 44 2021-02-20 14:44:00
3 2021 3 31 18 55 2021-03-31 18:55:00
3. Objeto de data/horário existente
Funções para acessar e definir componentes individuais de datas e horários
year()
: acessa o anomonth()
: acessa o mêsday()
: acessa o diayday()
: acessa o dia do anomday()
: acessa o dia do mêswday()
: acessa o dia da semanahour()
: acessa as horasminute()
: acessa os minutossecond()
: acessa os segundosFunções para acessar e definir componentes individuais de datas e horários
Inclusão de informações de datas e horários
Loop
Um loop for é uma iteração: um bloco de código é repetido mudando um contador de uma lista
Programação funcional
Estrutura
map(.x, .f)
.x
: uma vetor, lista ou data frame.f
: uma funçãoExemplo: aplicar a função sum()
para somar os valores de vários elementos de uma lista
Tipos de retorno
Diferentes funções retornam diferentes estruturas de dados
map()
: retorna uma listamap_chr()
: retorna um vetor de stringsmap_dbl()
: retorna um vetor numérico (double)map_int()
: retorna um vetor numérico (integer)map_lgl()
: retorna um vetor lógicomap_dfr()
: retorna um data frame (por linhas)map_dfc()
: retorna um data frame (por colunas)Tipos de retorno
Duas ou mais listas em paralelo
Implementar rotinas de manipulação e análise de dados
Implementar rotinas de manipulação e análise de dados
Material
furrr: programação funcional paralelizada
Faz o mapeamento em paralelo utilizando os cores do processador
furrr: programação funcional paralelizada
Número de cores do seu computador