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.
# 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.
# 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.
# 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().
# 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
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.
Afișează indiciu
SUA: df_selected <- select(df, nume, vârstă)
Soluție disponibilă după 3 încercări
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.
Afișează indiciu
Utilizați funcția filter(df, age > 18) și atribuiți rezultatul df_adults.
Soluție disponibilă după 3 încercări
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.
Afișează indiciu
Scrieți: res <- df %>% filter(vârsta > 18) %>% select(nume)
Soluție disponibilă după 3 încercări
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.
Afișează indiciu
Utilizați aranja (desc(salariu)) all'interno di una pipeline o come argomento diretto.
Soluție disponibilă după 3 încercări
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.
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