Pelajaran modul (1/2)
Memfilter dan Memilih Data
Tidyverse adalah kumpulan paket R yang dirancang untuk ilmu data yang memiliki filosofi, tata bahasa, dan struktur data yang sama. Paket inti untuk manipulasi data dalam suite ini disebut dplyr.
dplyr memperkenalkan serangkaian fungsi ("kata kerja") yang membuat manipulasi bingkai data menjadi sangat intuitif.
Operator Pipa (%>% atau |>)
Filosofi Tidyverse berpusat pada rangkaian operasi bersama-sama. Operator pipa %>% (atau pipa asli |> yang diperkenalkan di R 4.1+) mengambil hasil dari satu ekspresi dan meneruskannya sebagai argumen pertama ke fungsi berikutnya. Hal ini menghindari pemanggilan fungsi bertingkat dan mencegah ruang kerja Anda berantakan dengan variabel sementara.
# Without pipe:
filter(select(df, name, age), age > 20)
# With pipe:
df %>%
select(name, age) %>%
filter(age > 20)dplyr Kata Kerja untuk Memfilter dan Memilih
Tiga kata kerja dasar untuk mengekstraksi data dari bingkai data adalah:
1.select()
Memilih kolom tertentu dari bingkai data. Anda dapat membuat daftar nama kolom untuk dipertahankan atau menggunakan awalan - untuk mengecualikan kolom.
# Select the 'name' and 'salary' columns
select(df, name, salary)
# Remove the 'address' column
select(df, -address)2.filter()
Memfilter baris berdasarkan satu atau beberapa kondisi logis.
# 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()
Mengurutkan baris berdasarkan nilai dari satu atau beberapa kolom. Urutan penyortiran naik secara default. Untuk mengurutkan dalam urutan menurun, bungkus nama kolom dalam desc().
# Sort by age (ascending)
arrange(df, age)
# Sort by salary (descending)
arrange(df, desc(salary))Cobalah sendiri
Latihan 1: Pilih kolom
Mengingat bingkai data df, pilih kolom nama dan usia menggunakan select() dan simpan hasilnya di df_selected.
Tunjukkan petunjuk
Amerika: df_selected <- pilih(df, nama, umur)
Solusi tersedia setelah 3 upaya
Filter baris bingkai data df dengan kolom usia lebih besar dari 18, simpan hasilnya di df_adults.
Tunjukkan petunjuk
Gunakan fungsi filter(df, age > 18) dan tetapkan hasilnya ke df_adults.
Solusi tersedia setelah 3 upaya
Gunakan operator pipa %>% untuk merangkai operasi: filter pertama df hanya menyimpan catatan dengan usia > 18, lalu pilih kolom nama. Simpan hasilnya di res.
Tunjukkan petunjuk
Penulisan: res <- df %>% filter(umur > 18) %>% pilih(nama)
Solusi tersedia setelah 3 upaya
Urutkan baris-baris data frame df berdasarkan kolom gaji dalam urutan menurun menggunakan arrange() dan desc(). Simpan hasilnya di df_sorted.
Tunjukkan petunjuk
Kami mengatur(desc(gaji)) seluruh bagian dalam saluran pipa atau datang ke argumen langsung.
Solusi tersedia setelah 3 upaya
Tulis alur lengkap di df: filter catatan di mana departemen sama dengan 'IT', pilih kolom nama dan gaji, dan urutkan hasilnya berdasarkan gaji (menaik). Simpan hasil akhir di res.
Tunjukkan petunjuk
Gunakan pipa %>% untuk menyaring rantai (departemen == 'IT'), pilih (nama, gaji), dan atur (gaji).
Solusi tersedia setelah 3 upaya