Utama

3 Alasan Kenapa Semua Orang Perlu Belajar R

Mengaduk berbagai tabel untuk berbagai tujuan, dan tercatat

Alasan ketiga ini pula yang bikin saya menyadarkan setiap orang kenapa perlu belajar R. Persoalannya sederhana saja, yaitu bagaimana mengombinasikan tabel untuk berbagai tujuan. Ini adalah prasyarat. Apapun artikel yang saya tulis untuk mengolah data, akan memerlukan kemampuan dan software untuk mengaduk tabel. Agar lebih paham, saya akan menggunakan contoh dari artikel sebelumnya tentang Hanya Punya Data Diagnosis Penyakit? Begini Cara Menggali Data Klinik Anda (Data Mining).

Misal, Anda punya dua tabel:

  • Tabel 1 berisi nomer ID subjek, usia, dan jenis kelamin. Satu baris hanya untuk satu subjek.
  • Tabel 2 berisi nomer ID subjek, nomer ID kunjungan klinik, dan kode diagnosis penyakit (ICD-10). Satu subjek dapat memiliki atau tidak memiliki beberapa baris dalam tabel ini.

Kemudian, Anda perlu mengambil sampel dari ibu hamil berusia 12 s.d. 55 tahun dari kedua tabel tersebut. Bagaimana caranya?

Mari kita coba:

  1. Saring tabel 1 dengan jenis kelamin perempuan DAN usia ≥ 12 tahun DAN usia ≤ 55 tahun.
  2. Dari baris yang tersaring, ambil kolom nomer ID subjek.
  3. Saring tabel 2 dengan nomer ID subjek yang ada di dalam daftar nomer ID dari tabel 1 tadi.
  4. Dari baris yang tersaring, saring lagi baris dengan kode diagnosis periksa kehamilan, ataupun penyakit kehamilan.

Mudah bukan? Dapatkah Anda membayangkan olah data ini dengan Microsoft Excel? Apakah Anda tahu cara menyaring tabel 1? Bagaimana menyaring tabel 2 dengan nomer ID subjek hasil saringan tabel 1?

Kemudian, misal, Anda perlu membagi dua tabel. Satu untuk membuat prediksi. Satunya lagi untuk validasi prediksi tersebut. Bagaimana cara mengacak (randomize) baris mana yang akan diambil untuk pembuatan prediksi? Mana yang untuk validasi prediksi? Bagaimana mengacak baris di Microsoft Excel?

Baca juga: Cara Membuat Prediksi Penyakit dengan Benar

Anggap saja, Anda masih bisa melakukan itu dengan Microsoft Excel. Apakah masih bisa demikian jika datanya berjumlah 100,000 baris? Dengan data besar, komputer bisa berjalan cepat atau tidak?

Jika Anda melakukan dengan R, cukup buat baris kode ini saja. Beri nama tabel sesuka Anda dengan bahasa apapun, termasuk bahasa Indonesia. Lakukan sesuai 4 langkah di atas, seperti kode di bawah ini:

# Saring tabel 1 dengan jenis kelamin perempuan DAN usia ≥ 12 tahun DAN usia ≤ 55 tahun. Dari baris yang tersaring, ambil kolom nomer ID subjek.

id_subjek_terpilih = tabel_1 %>%
  filter(jenis_kelamin=='perempuan' & usia>=12 & usia <=55) %>%
  .$id_subjek


# Saring tabel 2 dengan nomer ID subjek yang ada di dalam daftar nomer ID dari tabel 1 tadi. Dari baris yang tersaring, saring lagi baris dengan kode diagnosis periksa kehamilan, ataupun penyakit kehamilan.

tabel_baru = tabel_2 %>%
  filter(id_subjek %in% id_subjek_terpilih)
  filter(kode_diagnosis %in% daftar_kode_diagnosis)

Itu saja.

Untuk mengacak, ini yang agak sulit di Microsoft Excel. Karena Anda perlu membuat daftar nomer urut acak, lalu menyaring baris dengan daftar tersebut. Meskipun bisa dilakukan dengan rumus, besar (magnitude) kesulitannya sama saja ibarat Anda belajar R, tapi proses kerja jauh lebih fleksibel dan cepat. Jadi, R adalah Microsoft Excel Anda sekarang.

Contoh kode untuk mengacak dapat dilihat di bawah ini. Pertama, kita tentukan baris mana saja untuk buat prediksi. Misal, 80% untuk buat prediksi:

baris_buat_prediksi = sample(
  x = 1:nrow(tabel_baru),
  size = 0.8*tabel_baru
)

Kemudian, kita ambil baris buat prediksi dan sisanya untuk validasi:

buat_prediksi = tabel_baru %>%
  filter(seq(nrow(.)) %in% baris_buat_prediksi)

validasi_prediksi = tabel_baru %>%
  filter(!(seq(nrow(.)) %in% baris_buat_prediksi))

Coba Anda perhatikan, kode untuk buat_prediksi itu mirip dengan validasi_prediksi. Bedanya hanya di awali dengan ! sebelum dibungkus dengan kedua tanda ( ).

Ada lagi satu proses yang sering dilakukan tapi harus dilakukan manual dengan Microsoft Excel, yaitu menumpuk baris ke bawah.

Misal, data Anda seperti:

Satu baris untuk satu subjek dengan tiga kolom di kanan.

Kemudian diubah menjadi:

Tiga kolom di kanan dibuatkan menjadi tiga baris untuk setiap subjek.

Ah… itu mudah. Tapi bagaimana kalau data Anda bejibun, misal, 200.000 baris? Atau, ada 10 tabel dengan bentuk berbeda-beda?

Kalau di R, begini contoh kodenya:

tabel_baru_2 = tabel_baru %>%
  melt(id.vars = 'id_subjek')

Hasilnya, begini:

Hasilnya sama. Nama kolom saya biarkan default. Jika ingin nama kolom sendiri, juga bisa.

Selain itu, ada pula hal yang jauh membedakan R dengan Microsoft Excel, yaitu reproducibility. Artinya, setiap langkah tercatat berupa kode dan orang lain akan percaya dengan proses data Anda karena mereka bisa menghasilkan kembali (reproducible) temuan data yang Anda analisis.

Silakan lanjut ke halaman berikutnya.