Pular para o conteúdo principal
Módulo 4 · Lição 1 de 27/10 no curso~12 min
Lições do módulo (1/2)

Filtrando e selecionando dados

O Tidyverse é uma coleção de pacotes R projetados para ciência de dados que compartilham filosofia, gramática e estruturas de dados comuns. O pacote principal para manipulação de dados neste conjunto é chamado dplyr.

dplyr introduz um conjunto de funções ("verbos") que tornam a manipulação de quadros de dados altamente intuitiva.


O Operador de Tubo (%>% ou |>)

A filosofia do Tidyverse centra-se no encadeamento de operações. O operador de pipe %>% (ou o pipe nativo |> introduzido no R 4.1+) pega o resultado de uma expressão e o passa como o primeiro argumento para a próxima função. Isso evita chamadas de função aninhadas e evita sobrecarregar seu espaço de trabalho com variáveis ​​temporárias.

R
# Without pipe:
filter(select(df, name, age), age > 20)

# With pipe:
df %>%
  select(name, age) %>%
  filter(age > 20)

Verbos dplyr para filtragem e seleção

Os três verbos fundamentais para extrair dados de um quadro de dados são:

1. select()

Seleciona colunas específicas de um quadro de dados. Você pode listar os nomes das colunas a serem mantidas ou usar o prefixo - para excluir colunas.

R
# Select the 'name' and 'salary' columns
select(df, name, salary)

# Remove the 'address' column
select(df, -address)

2. filter()

Filtra linhas com base em uma ou mais condições lógicas.

R
# Filter rows where age is greater than 30
filter(df, age > 30)

# Filter using multiple conditions (logical AND)
filter(df, age > 30, department == "HR")

3. arrange()

Classifica as linhas com base nos valores de uma ou mais colunas. A ordem de classificação é crescente por padrão. Para classificar em ordem decrescente, coloque o nome da coluna em desc().

R
# Sort by age (ascending)
arrange(df, age)

# Sort by salary (descending)
arrange(df, desc(salary))

Experimente você mesmo

Exercício 1: Selecione colunas

Exercício#r.m4.l1.e1
Tentativas: 0Carregando…

Dado o quadro de dados df, selecione as colunas de nome e idade usando select() e salve o resultado em df_selected.

Carregando editor…
Mostrar dica

EUA: df_selected <- select(df, nome, idade)

Solução disponível após 3 tentativas

Exercício#r.m4.l1.e2
Tentativas: 0Carregando…

Filtre as linhas do quadro de dados df onde a coluna idade é estritamente maior que 18, salvando o resultado em df_adults.

Carregando editor…
Mostrar dica

Use a função filter(df, age > 18) e atribua o resultado a df_adults.

Solução disponível após 3 tentativas

Exercício#r.m4.l1.e3
Tentativas: 0Carregando…

Use o operador de pipe %>% para encadear operações: primeiro filtre df mantendo apenas registros com idade > 18 e, em seguida, selecione a coluna de nome. Salve o resultado em res.

Carregando editor…
Mostrar dica

Escrito: res <- df %>% filter(age > 18) %>% select(name)

Solução disponível após 3 tentativas

Exercício#r.m4.l1.e4
Tentativas: 0Carregando…

Classifique as linhas do quadro de dados df com base na coluna salário em ordem decrescente usando organize() e desc(). Salve o resultado em df_sorted.

Carregando editor…
Mostrar dica

Eu arranjo (desc(salary)) todo o interior de um pipeline ou como argumento direto.

Solução disponível após 3 tentativas

Exercício#r.m4.l1.e5
Tentativas: 0Carregando…

Escreva um pipeline completo no df: filtre os registros onde departamento é igual a 'TI', selecione as colunas nome e salário e classifique o resultado por salário (crescente). Salve o resultado final em res.

Carregando editor…
Mostrar dica

Use o pipe %>% para encadear filter(department == 'IT'), select(name, salarial) e organize(salary).

Solução disponível após 3 tentativas