0% menganggap dokumen ini bermanfaat (0 suara)
92 tayangan

Data Preparation in Data Science Using R

Dokumen tersebut membahas mengenai missing value atau nilai yang hilang dalam data science dengan bahasa R. Secara singkat, dokumen tersebut menjelaskan bahwa (1) NA adalah representasi utama missing value dalam R, (2) function is.na digunakan untuk mengecek nilai missing secara benar dibandingkan dengan operator ==, dan (3) missing value merupakan hal yang lumrah terjadi dalam pengolahan data sehingga perlu dikelola dengan baik.

Diunggah oleh

Crimson Affandi
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
92 tayangan

Data Preparation in Data Science Using R

Dokumen tersebut membahas mengenai missing value atau nilai yang hilang dalam data science dengan bahasa R. Secara singkat, dokumen tersebut menjelaskan bahwa (1) NA adalah representasi utama missing value dalam R, (2) function is.na digunakan untuk mengecek nilai missing secara benar dibandingkan dengan operator ==, dan (3) missing value merupakan hal yang lumrah terjadi dalam pengolahan data sehingga perlu dikelola dengan baik.

Diunggah oleh

Crimson Affandi
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 13

Pendahuluan

"Data preparation accounts for about 80% of the work of data scientists"
Kutipan di atas diambil dari salah satu artikel blog online Forbes berdasarkan hasil
survey terhadap 80 orang data scientist yang dilakukan oleh salah satu provider data
enrichment.
Selengkapnya dapat Anda lihat pada url berikut:
https://www.forbes.com/sites/gilpress/2016/03/23/data-preparation-most-time-
consuming-least-enjoyable-data-science-task-survey-says
Masih dari link yang sama, berikut adalah pie chart yang merepresentasikan porsi dari
pekerjaan data scientist. Proses data preparation di chart ini adalah Collecting data sets
(19%) dan Cleaning and organizing data (60%).

Dengan demikian, keterampilan untuk melakukan data preparation atau saat ini sering
disebut sebagai data wrangling adalah mutlak untuk seluruh data scientist dan data
engineer.
Lalu apa saja yang dilakukan di proses ini?
Data wrangling adalah proses membaca data dari berbagai sumber dan merubah isi
dan struktur sehingga dapat digunakan untuk analisa.
Data cleansing biasanya melibatkan isi yang perlu diubah karena kadang data
dimasukkan dari sistem yang berbeda.Bertolak belakang dengan anggapan bahwa
dengan sistem, data akan bersih dan standar. Pada kenyataannya, bisnis berkembang
lebih cepat dibandingkan dengan pembuatan sistem sehingga banyak design dirubah di
tengah jalan untuk mengakomodir hal ini, dan isi menjadi "berantakan". Penyebab
utama lainnya tentunya adalah sistem entri data yang manual.
Contoh yang paling sering adalah informasi pelanggan (customer). Di satu sistem
namanya boleh memasukkan gelar, dan di satu sistem tidak boleh… jadinya ada dua
nama yang serupa tapi tak sama sebagai berikut: "Agus Cahyono
S.Kom." dan "Cahyono, Agus".
Struktur perlu dirubah karena berbagai alasan, salah satu yang paling penting adalah
tiap algoritma mensyaratkan struktur data yang berbeda dan optimal.
Sebagai contoh: transaksi penjualan untuk satu algoritma bisa menggunakan row-
based transaction. Sedangkan algoritma lain harus menggunakan sparse-matrix.
Data wrangling adalah topik yang sangat besar, DQLab coba merancang materi ini
dengan pembagian ke beberapa course,  artikel dan project – semuanya bisa diakses di
satu platform yang sama.
Namun hampir sebagian besar proses data wrangling sehari-hari dengan R akan
dicakup oleh course ini. Jika proses harus melibatkan tahapan yang lebih sulit dan tidak
dicakup di dalam course ini juga akan diinformasikan lebih lanjut.
Klik tombol Next untuk melanjutkan ke bagian berikutnya.
Next >

Dataset-dataset Yang Akan Digunakan


Untuk kepentingan penguasaan melalui praktek, sepanjang course ini kita akan bekerja
dengan beberapa dataset berikut:
 Dataset kependudukan.dki dalam bentuk file teks (csv, tsv) dan dalam bentuk Excel.
Semuanya dengan isi data yang sama, namun ketika menggunakan R untuk membaca,
akan ditunjukkan karakteristik masing-masing yang perlu diperhatikan.
 Dataset pelanggan dalam bentuk file Excel, dimana kita akan melakukan beberapa
proses pengolahan text dan tanggal di dataset ini.
 Dataset transaksi dalam bentuk database MySQL, dimana penguasaan skillset SQL
yang diperlukan dapat dicapai.
Dataset ini akan dijelaskan lebih lanjut pada saat kita mulai mempraktekkan dataset ini.
Klik tombol Next untuk melanjutkan.
Next >
Penutup
Data preparation atau data wrangling adalah proses yang memakan waktu dan tenaga
paling besar bagi seorang data scientist, yaitu sampai 80 persen. Detilnya, pembacaan
sumber data memakan waktu sampai 20 persen, dan mengorganisasikan dan
membersihkan data memakan waktu sampai 60 persen.
Dengan demikian, skillset untuk data wrangling ini merupakan suatu yang mutlak
dikuasai oleh para data scientist.
R menyediakan banyak function yang bisa digunakan untuk memudahkan Anda dalam
menguasai skillset data wrangling ini.
Course ini akan mencakup cukup banyak praktek data wrangling sebagai bekal untuk
mengolah data sehari-hari. Dimulai dari pemahaman mengenai konsep missing data
(data yang kosong) dan factor sebagai tipe data yang penting, Anda akan diajak tahap
demi tahap menguasai pengolahan teks, bekerja dengan tanggal, menggabungkan
data, dan mentransformasi struktur data.
Selamat memulai pelajaran data wrangling dengan R ini, happy learning!  
Klik tombol Next untuk melanjutkan ke tahap berikutnya.

Pendahuluan
Dalam perjalanan Anda sebagai data scientist ataupun data engineer, pasti akan
menghadapi kolom dengan sebagian data tidak terisi atau kosong. Ini disebut
dengan missing value atau nilai yang hilang.
Menyadari hal ini adalah satu tahap penting karena kita akan sadar bahwa hal tersebut
adalah lumrah terjadi.
Tahap selanjutnya, kita perlu dua hal:
 Bagaimana missing value direpresentasikan, ini penting sehingga kita bisa
identifikasi apakah nilai hilang karena dari awal memang ga ada, apakah karena
operasi matematika, dan lain-lain.
 Dengan mengetahui representasi ini, kita dapat melakukan sesuatu terhadapnya.
Atau singkat dapat dikelola (manage) dengan baik.
Kedua hal tersebut sangat penting terutama bagi Anda yang berangkat dari SQL
ataupun bahasa programming lain, dimana ada satu reprentasi missing value saja, yaitu
NULL.
Sepanjang bab ini kita akan membahas representasi yang bisa dianggap missing value
yaitu NA, NULL dan NaN. Dan bagaimana kita melakukan banyak hal dengan missing
value ini.
Klik tombol Next untuk melanjutkan.
NA (Not Available)
NA adalah representasi utama dari missing value di R, dan merupakan suatu nilai
atomik.
Artinya posisi NA sama dengan contoh nilai-nilai atomik bilangan seperti 1, 2 atau 100.
Juga sama dengan contoh nilai karakter seperti "a", "b",  atau "g".
Karena angka dan karakter seperti contoh di atas sering disebut sebagai konstanta,
maka NA adalah konstanta untuk missing value.
Dengan demikian, secara singkat NA adalah:
 Representasi missing value
 Merupakan konstanta atau nilai atomik
NA tidak bisa digunakan sebagai variable karena merupakan keyword, dan perhatikan
penulisan NA dimana kedua karakter adalah huruf besar.
Klik tombol Next untuk melanjutkan ke bagian praktek dan latihan.

NA dan default type


Untuk menggunakan NA adalah sama dengan nilai konstanta lain, cukup mengetikkan
NA.
Sebagai contoh, jika kita ketikkan NA di console maka akan muncul hasil berikut:

> NA
[1] NA

Angka [1] adalah posisi index dari konstanta (yang selalu bernilai 1) dan NA adalah
nilainya sendiri. Dan NA ini secara default adalah representasi missing value untuk tipe
data logical.
Ini kita bisa cek dengan perintah yang menggunakan function typeof, sebagai berikut.
typeof(NA)
Hasilnya akan muncul sebagai berikut:

> typeof(NA)
[1] "logical"

Tentunya, NA adalah representasi missing value untuk seluruh tipe lain, tapi secara
default adalah untuk logical dulu. Namun akan kita jelaskan lebih jauh di bagian lain
pada bab ini.
Tugas Praktek
Cobalah ketik nilai NA pada bagian […1…] dan typeof(NA) pada bagian […2…] dari
code editor dan jalankan.
Jika berjalan dengan lancar, maka hasilnya akan terlihat seperti pada contoh output dari
code Lesson di atas.

Menggunakan function is.na


Pada saat kita membandingkan nilai atomik biasanya kita menggunakan operator ==,
misalkan untuk periksa suatu variabel x yang bernilai 3 – yang sebelumnya kita juga
telah memasukkan angka yang sama – kita bisa melakukan hal berikut.

x <- 3
x == 3

Maka hasil eksekusi perintah di atas akan menghasilkan nilai TRUE seperti terlihat dari
potongan code lengkap berikut.

x <- 3
> x == 3
[1] TRUE

Nah, ini tidak berlaku untuk NA. Jadi jika nilai x kita isi dan cek dengan cara yang sama
sebagai berikut.

x <- NA
x == NA

Hasil eksekusinya tidak akan menghasilkan TRUE, tapi tetap NA.

 
Pengecekan seperti ini tentunya tidak mungkin dilakukan jika kita menggunakan
konstruksi percabangan keputusan seperti if ataupun konstruksi perulangan seperti
while.
Nah, untuk mengatasi hal ini R menggunakan function bernama is.na dengan input
berupa konstanta atau variabel. Mari kita ubah simbol == contoh di atas menggunakan
function is.na seperti berikut.

is.na(NA)

Kali ini hasil eksekusinya akan bernilai TRUE.


 
Tugas Praktek
Cobalah definisikan variable x yang diisi dengan missing value NA pada bagian […1…],
dan masukkan konstruksi perbandingan antara variable x dengan nilai NA dengan
simbol == pada bagian […2…].
Dan terakhir, masukkan perbandingan dengan function is.na untuk menggantikan […
3…] dari code editor dan jalankan.
Jika berjalan dengan lancar, maka hasilnya akan terlihat seperti contoh output dari tiap
code dari Lesson
 
Lesson    

  5

 60

#Buat variable x yang diisi dengan nilai NA


2

[…1…]
3

#Pengecekan variable x dengan nilai NA menggunakan operator ==


5

[…2…]
6

#Pengecekan variable x dengan nilai NA menggunakan function is.na


8
[…3…]
9

Code Editor

 2 Hint  Submit  Run

Console

Graphic

Missing Value in R
Chapter

6

o
Pendahuluan


o
Kenapa kita memerlukan representasi Missing Value?


o
Apa saja yang bisa menyebabkan Missing Value?


o
NA (Not Available)


o
NA dan default type


o
Menggunakan function is.na


o
Variasi NA dan is.na


o
Coercion pada Vector yang mengandung NA


o
NULL


o
NULL dan Vector

o
Ringkasan Perbandingan NA dan NULL


o
NULL dan List


o
Inf untuk mewakili Infinite Number


o
NaN (Not a Number)


o
NaN dari hasil function log()


o
Fungsi is.nan


o
NaN dan is.na versus NA dan is.nan


o
Menghitung Jumlah Missing Values dari satu Vector


o
Kesimpulan

Progress
Variasi NA dan is.na
Seperti disebutkan sebelumnya, NA adalah merupakan nilai atomik dan konstanta, dan
awalnya merupakan representasi missing value dari logical.
Apa artinya?
Ini jika dihubungkan dengan tipe data lain di R seperti vector – dimana isinya harus
seragam tipe datanya – maka vector tersebut hanya boleh berisi nilai TRUE dan
FALSE.
Sebagai perbandingan, mari kita lihat contoh pembuatan satu vector dengan isi
campuran dari integer dan logical berikut.

c(1, 2, FALSE, 3)

Hasil akan ditampilkan sebagai berikut.

[1] 1 2 0 3

Terlihat bahwa FALSE di atas dikonversi (beradaptasi) menjadi 0. Adaptasi ini juga
disebut dengan coerce di dokumentasi R.
Lalu bagaimana dengan missing value NA?  
NA juga memiliki konstanta yang digunakan untuk beradaptasi, yaitu:
 NA_integer_ untuk representasi tipe data "integer"
 NA_real_ untuk representasi tipe data "double"
 NA_complex_ untuk representasi tipe data "complex"
 NA_character_ untuk representasi tipe data "character"
Dan semuanya memiliki nilai NA. Jika kita cek tipe data dari salah satu variasi missing
value NA sebagai berikut

typeof(NA_real_)

Maka kita akan dapatkan hasil "double" seperti berikut.

> typeof(NA_real_)
[1] "double"

Namun jika menggunakan is.na maka seluruhnya akan mengembalikan hasil TRUE.
Untuk lebih jelasnya mari kita lakukan praktek berikut.
Tugas Praktek
Cobalah ketikkan empat function typeof untuk menggantikan bagian […1…] s/d […4…]
code editor, dengan masing-masing secara berurut mengecek NA_integer_, NA_real_,
NA_complex_ dan NA_character_.
Kemudian ketikkan lagi function is.na untuk menggantikan bagian […5…] s/d […8…]
code editor secara berurut untuk  NA_integer_, NA_real_, NA_complex_ dan
NA_character_.
Jika berhasil dijalankan, masing-masing baris perintah akan mengeluarkan hasil berikut.

[1] "integer"
[1] "double"
[1] "complex"
[1] "character"
[1] TRUE
[1] TRUE
[1] TRUE
[1] TRUE

Lesson    

  5

 65

[…1…]
2

[…2…]
3

[…3…]
4

[…4…]
5

[…5…]
6

[…6…]
7

[…7…]
8

[…8…]
9

Code Editor

 1 Hint  Submit  Run

Console

Graphic

Modul R
Chapter

Progress

Coercion pada Vector yang mengandung NA


Dengan adanya variasi NA yang dijelaskan pada content sebelumnya, R akan secara
otomatis menggantikan NA yang secara default tipe data logical menjadi variasi
tersebut.
Jadi jika kita mengetik hasil berikut.

c(1, 2, NA, 4, 5)

maka sebenarnya konstanta NA di atas akan diganti menjadi NA_real_. Namun


tentunya ini ga akan terlihat, hanya terjadi sebagai proses di belakang layar oleh R.
Tugas Praktek
Isi bagian […1…] pada code editor dengan variable bernama isi.vector yang isinya
c(1,2,3,NA,3,1). Kemudian kita akan menggunakan konstruksi lapply untuk mengecek
semua tipe, isi […2…] dengan variable yang telah kita buat, dan […3…] dengan
function typeof.
Terakhir isi bagian […4…] dengan function is.na dan isi dengan variable isi.vector.
Jika berjalan dengan baik maka deretan hasil yang muncul adalah sebagai berikut.

[[1]]
[1] "double"

[[2]]
[1] "double"

[[3]]
[1] "double"

[[4]]
[1] "double"

[[5]]
[1] "double"

[[6]]
[1] "double"
[1] FALSE FALSE FALSE TRUE FALSE FALSE

Anda mungkin juga menyukai