Salt la conținutul principal
Modulul 4 · Lecția 1 din 27/10 în curs~12 min
Lecții din modul (1/2)

Filtrarea și selectarea datelor

Tidyverse este o colecție de pachete R concepute pentru știința datelor care împărtășesc o filozofie, gramatică și structuri de date comune. Pachetul de bază pentru manipularea datelor din această suită se numește dplyr.

dplyr introduce un set de funcții ("verbe") care fac manipularea cadrelor de date extrem de intuitivă.


Operatorul de conducte (%>% sau |>)

Filosofia Tidyverse se concentrează pe înlănțuirea operațiunilor împreună. Operatorul pipe %>% (sau pipe-ul nativ |> introdus în R 4.1+) ia rezultatul unei expresii și îl transmite ca prim argument la următoarea funcție. Acest lucru evită apelurile de funcții imbricate și previne aglomerarea spațiului de lucru cu variabile temporare.

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

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

dplyr Verbe pentru filtrare și selectare

Cele trei verbe fundamentale pentru extragerea datelor dintr-un cadru de date sunt:

1. select()

Selectează anumite coloane dintr-un cadru de date. Puteți enumera numele coloanelor de păstrat sau puteți utiliza prefixul - pentru a exclude coloanele.

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

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

2. filter()

Filtrează rândurile în funcție de una sau mai multe condiții logice.

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()

Sortează rândurile pe baza valorilor uneia sau mai multor coloane. Ordinea de sortare este crescătoare în mod implicit. Pentru a sorta în ordine descrescătoare, împachetați numele coloanei în desc().

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

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

Încercați-l singur

Exercițiul 1: Selectați coloanele

Exercițiu#r.m4.l1.e1
Încercări: 0Se încarcă…

Având în vedere cadrul de date df, selectați coloanele de nume și vârstă folosind select() și salvați rezultatul în df_selected.

Se încarcă editorul...
Afișează indiciu

SUA: df_selected <- select(df, nume, vârstă)

Soluție disponibilă după 3 încercări

Exercițiu#r.m4.l1.e2
Încercări: 0Se încarcă…

Filtrați rândurile cadrului de date df unde coloana de vârstă este strict mai mare de 18, salvând rezultatul în df_adults.

Se încarcă editorul...
Afișează indiciu

Utilizați funcția filter(df, age > 18) și atribuiți rezultatul df_adults.

Soluție disponibilă după 3 încercări

Exercițiu#r.m4.l1.e3
Încercări: 0Se încarcă…

Utilizați operatorul de conducte %>% pentru a înlănțui operațiunile: mai întâi filtrați df păstrând numai înregistrări în cazul în care vârsta > 18, apoi selectați coloana de nume. Salvați rezultatul în res.

Se încarcă editorul...
Afișează indiciu

Scrieți: res <- df %>% filter(vârsta > 18) %>% select(nume)

Soluție disponibilă după 3 încercări

Exercițiu#r.m4.l1.e4
Încercări: 0Se încarcă…

Sortați rândurile cadrului de date df pe coloana salariului în ordine descrescătoare folosind arrange() și desc(). Salvați rezultatul în df_sorted.

Se încarcă editorul...
Afișează indiciu

Utilizați aranja (desc(salariu)) all'interno di una pipeline o come argomento diretto.

Soluție disponibilă după 3 încercări

Exercițiu#r.m4.l1.e5
Încercări: 0Se încarcă…

Scrieți un pipeline complet pe df: filtrați înregistrările în care departamentul este egal cu „IT”, selectați coloanele numele și salariul și sortați rezultatul după salariu (crescător). Salvați rezultatul final în res.

Se încarcă editorul...
Afișează indiciu

Utilizați conducta %>% pentru a înlănțui filtrul (departament == „IT”), selectați (nume, salariu) și aranjați (salariu).

Soluție disponibilă după 3 încercări