Passer au contenu principal
eLearner.app
Module 4 · Leçon 1 sur 27/10 dans le cours~12 min
Leçons du module (1/2)

Filtrare e Selezionare Dati

Il Tidyverse è una collezione di pacchetti R progettati per la data science che condividono la stessa filosofia di progettazione e struttura dati. Il pacchetto principale per la manipolazione dei dati in questa suite si chiama dplyr.

dplyr introduce una serie di funzioni ("verbi") che rendono intuitiva la manipolazione di data frame.


L'Operatore Pipe (%>% o |>)

La filosofia del Tidyverse si basa sulla concatenazione delle operazioni. L'operatore pipe %>% (o l'operatore nativo |> introdotto in R 4.1+) prende il risultato di un'espressione e lo passa come primo argomento alla funzione successiva. Questo evita di nidificare continuamente le funzioni o creare troppe variabili temporanee.

Code
# Senza pipe:
filter(select(df, name, age), age > 20)

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

Verbi di dplyr per Filtrare e Selezionare

I tre verbi fondamentali per estrarre informazioni da un data frame sono:

1. select()

Seleziona colonne specifiche del data frame. Puoi elencare i nomi delle colonne che vuoi mantenere o escludere usando il segno -.

Code
# Seleziona le colonne 'name' e 'salary'
select(df, name, salary)

# Rimuovi la colonna 'address'
select(df, -address)

2. filter()

Filtra le righe in base a una o più condizioni logiche.

Code
# Filtra le righe dove age è maggiore di 30
filter(df, age > 30)

# Filtra con condizioni multiple (AND logico)
filter(df, age > 30, department == "HR")

3. arrange()

Ordina le righe in base ai valori di una o più colonne. Di default l'ordinamento è crescente. Per l'ordinamento decrescente si usa desc().

Code
# Ordina per age (crescente)
arrange(df, age)

# Ordina per salary (decrescente)
arrange(df, desc(salary))

Prova tu

Esercizio 1: Seleziona colonne

Exercice#r.m4.l1.e1
Tentatives : 0Chargement…

Dato il data frame df, seleziona le colonne name e age usando la funzione select() e salva il risultato in df_selected.

Chargement de l'éditeur…
Afficher l'indice

Usa: df_selected <- select(df, name, age)

Solution disponible après 3 tentatives

Exercice#r.m4.l1.e2
Tentatives : 0Chargement…

Filtra le righe del data frame df in cui la colonna age è strettamente maggiore di 18, salvando il risultato in df_adults.

Chargement de l'éditeur…
Afficher l'indice

Usa la funzione filter(df, age > 18) e assegna il risultato a df_adults.

Solution disponible après 3 tentatives

Exercice#r.m4.l1.e3
Tentatives : 0Chargement…

Usa l'operatore pipe %>% per concatenare le operazioni: seleziona prima la colonna name dal data frame df, poi filtra mantenendo solo i record con age > 18. Salva in res.

Chargement de l'éditeur…
Afficher l'indice

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

Solution disponible après 3 tentatives

Exercice#r.m4.l1.e4
Tentatives : 0Chargement…

Ordina le righe del data frame df in base alla colonna salary in ordine decrescente usando arrange() e desc(). Salva in df_sorted.

Chargement de l'éditeur…
Afficher l'indice

Usa arrange(desc(salary)) all'interno di una pipeline o come argomento diretto.

Solution disponible après 3 tentatives

Exercice#r.m4.l1.e5
Tentatives : 0Chargement…

Scrivi una pipeline completa su df: filtra i record con department uguale a 'IT', seleziona le colonne name e salary, e ordina il risultato in base a salary (ordine crescente). Salva il risultato finale in res.

Chargement de l'éditeur…
Afficher l'indice

Usa la pipe %>% per concatenare filter(department == 'IT'), select(name, salary), e arrange(salary).

Solution disponible après 3 tentatives