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.
# 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.
# 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.
# 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().
# Sort by age (ascending)
arrange(df, age)
# Sort by salary (descending)
arrange(df, desc(salary))Experimente você mesmo
Exercício 1: Selecione colunas
Dado o quadro de dados df, selecione as colunas de nome e idade usando select() e salve o resultado em df_selected.
Mostrar dica
EUA: df_selected <- select(df, nome, idade)
Solução disponível após 3 tentativas
Filtre as linhas do quadro de dados df onde a coluna idade é estritamente maior que 18, salvando o resultado em df_adults.
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
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.
Mostrar dica
Escrito: res <- df %>% filter(age > 18) %>% select(name)
Solução disponível após 3 tentativas
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.
Mostrar dica
Eu arranjo (desc(salary)) todo o interior de um pipeline ou como argumento direto.
Solução disponível após 3 tentativas
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.
Mostrar dica
Use o pipe %>% para encadear filter(department == 'IT'), select(name, salarial) e organize(salary).
Solução disponível após 3 tentativas