Panduan untuk Pemula: Faktor di R

Hai teman-teman yang sedang belajar pemrograman R! Hari ini, kita akan mendalamkan pengetahuan tentang faktor di R. Jangan khawatir jika Anda belum pernah mengoding sebelumnya - saya akan menjadi panduan yang ramah untuk Anda dalam perjalanan ini, dan pada akhirnya, Anda akan dapat mengolah faktor seperti seorang ahli!

R - Factors

Apa Itu Faktor?

Sebelum kita masuk ke kode, mari kita pahami apa itu faktor. Dalam R, faktor digunakan untuk mewakili data kategorikal. Pahami saja mereka sebagai cara untuk melabel dan mengatur berbagai kelompok atau kategori dalam data Anda.

Sebagai contoh, jika Anda mengumpulkan data tentang favorit rasa es krim teman sekolah Anda, Anda mungkin menggunakan faktor untuk mewakili rasa es krim yang berbeda: coklat, vanila, stroberi, dan seterusnya. Setiap rasa akan menjadi "level" dalam faktor Anda.

Sekarang, mari kita lihat bagaimana kita dapat membuat dan bekerja dengan faktor di R!

Contoh: Membuat Faktor Pertama Anda

Mari kita mulai dengan contoh sederhana. Bayangkan kita melakukan survei tentang hewan peliharaan favorit orang.

# Membuat vektor preferensi hewan
pets <- c("Dog", "Cat", "Dog", "Fish", "Cat", "Dog", "Hamster")

# Konversikan vektor ke faktor
pet_factor <- factor(pets)

# Cetak faktor
print(pet_factor)

# Dapatkan ringkasan faktor
summary(pet_factor)

Ketika Anda menjalankan kode ini, Anda akan melihat seperti ini:

[1] Dog     Cat     Dog     Fish    Cat     Dog     Hamster
Levels: Cat Dog Fish Hamster

Cat Dog Fish Hamster
2   3    1       1

mari kitauraikan ini:

  1. Pertama-tama, kita membuat vektor pets dengan berbagai preferensi hewan.
  2. Kemudian kita gunakan fungsi factor() untuk mengonversi vektor ini menjadi faktor.
  3. Ketika kita mencetak faktor, R menunjukkan nilai dan level (kategori unik) dalam faktor.
  4. Fungsi summary() memberikan kita hitungan berapa kali setiap level muncul dalam faktor kita.

Apakah ini menarik bagaimana R secara otomatis mengidentifikasi kategori unik dan menghitungnya untuk kita? Itu adalah sebabnya faktor sangat berguna untuk data kategorikal!

Faktor dalam Data Frame

Sekarang, mari kita lihat bagaimana faktor bekerja dalam data frame, yang adalah struktur umum untuk menyimpan data di R.

# Membuat data frame dengan preferensi hewan dan umur
pet_data <- data.frame(
name = c("Alice", "Bob", "Charlie", "David", "Eve"),
pet = c("Dog", "Cat", "Dog", "Fish", "Cat"),
age = c(25, 30, 35, 28, 22)
)

# Konversikan kolom 'pet' ke faktor
pet_data$pet <- factor(pet_data$pet)

# Cetak struktur data frame
str(pet_data)

# Dapatkan ringkasan data frame
summary(pet_data)

Menjalankan kode ini akan memberikan Anda:

'data.frame':   5 obs. of  3 variables:
$ name: chr  "Alice" "Bob" "Charlie" "David" ...
$ pet : Factor w/ 3 levels "Cat","Dog","Fish": 2 1 2 3 1
$ age : num  25 30 35 28 22

name                pet        age
Length:5           Cat    :2   Min.   :22.00
Class :character   Dog    :2   1st Qu.:25.00
Mode  :character   Fish   :1   Median :28.00
Mean   :28.00
3rd Qu.:30.00
Max.   :35.00

Ini adalah apa yang terjadi:

  1. Kita membuat data frame dengan nama, preferensi hewan, dan umur.
  2. Kita mengonversi kolom 'pet' ke faktor.
  3. Fungsi str() menunjukkan struktur data frame kita. Catatan bagaimana 'pet' sekarang adalah faktor dengan 3 level.
  4. Fungsi summary() memberikan ringkasan dari setiap kolom, termasuk hitungan setiap jenis hewan dalam kolom faktor kita.

Mengubah Urutan Level

kadang-kadang, Anda mungkin ingin mengubah urutan level dalam faktor Anda. Mari kita lihat bagaimana kita dapat melakukan itu:

# Membuat faktor ukuran baju
sizes <- factor(c("Small", "Medium", "Large", "Small", "Medium"))

# Cetak level saat ini
print(levels(sizes))

# Ubah urutan level
sizes <- factor(sizes, levels = c("Small", "Medium", "Large"))

# Cetak level baru
print(levels(sizes))

Ini akan mengeluarkan:

[1] "Large"  "Medium" "Small"

[1] "Small"  "Medium" "Large"

Berikut adalah apa yang kita lakukan:

  1. Kita membuat faktor ukuran baju.
  2. Awalnya, R mengurutkan level secara alfabetik.
  3. Kita kemudian menggunakan argumen levels dalam fungsi factor() untuk menentukan urutan yang diinginkan.
  4. Level sekarang dalam urutan yang kita tentukan: Small, Medium, Large.

Ini bisa sangat berguna saat Anda membuat plot atau tabel dan ingin mengendalikan urutan kategori yang muncul.

Menghasilkan Level Faktor

kadang-kadang, Anda mungkin ingin menghasilkan level faktor secara programatik. Berikut cara Anda dapat melakukan itu:

# Menghasilkan urutan bulan
months <- factor(month.abb)

# Cetak level
print(levels(months))

# Membuat faktor dengan level khusus
temperatures <- factor(c("Cold", "Hot", "Mild", "Hot", "Cold"),
levels = c("Cold", "Mild", "Hot"),
ordered = TRUE)

# Cetak faktor
print(temperatures)

Ini akan mengeluarkan:

[1] "Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"

[1] Cold Hot  Mild Hot  Cold
Levels: Cold < Mild < Hot

mari kitauraikan ini:

  1. Kita menggunakan month.abb, sebuah konstanta bawaan R, untuk membuat faktor singkatan bulan.
  2. Kita kemudian membuat faktor khusus untuk level suhu.
  3. Kita menentukan level yang kita inginkan dan urutannya.
  4. Dengan menyetel ordered = TRUE, kita membuat faktor yang diurutkan dimana Cold < Mild < Hot.

Metode Faktor Berguna

Berikut adalah tabel metode yang berguna untuk bekerja dengan faktor:

Metode Deskripsi
levels() Dapatkan atau set level faktor
nlevels() Dapatkan jumlah level dalam faktor
as.numeric() Konversikan faktor ke numerik (berdasarkan urutan level)
as.character() Konversikan faktor ke karakter
table() Buat tabel frekuensi faktor
droplevels() Hapus level yang tidak digunakan dari faktor

Ingat, latihan membuat Anda sempurna! Cobalah membuat faktor Anda sendiri dan eksperimenkan metode ini. Sebelum Anda tahu, Anda akan dapat mengolah data kategorikal seperti seorang ahli!

Saya harap panduan ini telah membantu Anda memahami faktor di R. Mereka adalah alat yang kuat untuk bekerja dengan data kategorikal, dan menguasai mereka akan membuat perjalanan analisis data Anda lebih mulus. Selamat berkoding!

Credits: Image by storyset