Panduan Awal Mengenai Faktor di R

Hai sana, calon pengguna R! Hari ini, kita akan melihat dunia yang menarik tentang faktor di R. Jangan khawatir jika Anda belum pernah mengkode sebelumnya - saya akan menjadi panduan ramah bagi Anda dalam perjalanan ini, dan pada akhirnya, Anda akan menjadi ahli dalam hal faktor!

R - Factors

Apa Itu Faktor?

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

Misalnya, jika Anda mengumpulkan data tentang favorit rasa es krim kelas Anda, Anda mungkin menggunakan faktor untuk merepresentasikan rasa es krim berbeda: coklat, vanila, stroberi, dan seterusnya. Setiap rasa akan menjadi "tingkat" 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 favorit hewan peliharaan orang.

# Buat vektor preferensi hewan peliharaan
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 sesuatu 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 peliharaan.
  2. Kemudian kita menggunakan fungsi factor() untuk mengkonversi vektor ini menjadi faktor.
  3. Ketika kita cetak faktor, R menunjukkan nilai dan tingkat (kategori unik) dalam faktor.
  4. Fungsi summary() memberikan kita hitungan berapa kali setiap tingkat muncul dalam faktor kita.

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

Faktor dalam Data Frame

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

# Buat data frame dengan preferensi hewan peliharaan 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 peliharaan, dan umur.
  2. Kita mengkonversikan kolom 'pet' ke faktor.
  3. Fungsi str() menunjukkan struktur data frame. Perhatikan bagaimana 'pet' sekarang adalah faktor dengan 3 tingkat.
  4. Fungsi summary() memberikan ringkasan dari setiap kolom, termasuk hitungan setiap jenis hewan peliharaan untuk kolom faktor kita.

Mengubah Urutan Tingkat

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

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

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

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

# Cetak tingkat baru
print(levels(sizes))

Ini akan mengeluarkan:

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

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

Berikut ini apa yang kita lakukan:

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

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

Menghasilkan Tingkat Faktor

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

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

# Cetak tingkat
print(levels(months))

# Buat faktor dengan tingkat 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, konstanta bawaan R, untuk membuat faktor singkatan bulan.
  2. Kita kemudian membuat faktor khusus untuk tingkat suhu.
  3. Kita menentukan tingkat yang kita inginkan dan urutannya.
  4. Dengan mengatur 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 tingkat faktor
nlevels() Dapatkan jumlah tingkat dalam faktor
as.numeric() Konversikan faktor ke numerik (berdasarkan urutan tingkat)
as.character() Konversikan faktor ke karakter
table() Buat tabel frekuensi faktor
droplevels() Hapus tingkat yang tidak digunakan dari faktor

Ingat, latihan membuat Anda sempurna! Cobalah membuat faktor Anda sendiri dan eksperimenkan metode ini. Sebelum Anda tahu, Anda akan menjadi ahli dalam menghandle data kategorik!

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

Credits: Image by storyset