Tugas Praktikum 01 - Sains Data

Packages

Pakcage yang digunakan pada Praktikum :

library(dplyr)
library(knitr)
library(DT)

Dataset

Dataset yang akan digunakan adalah data infert dari package dataset

Infertilitas setelah Aborsi Spontan dan Induksi

dataset<-infert 
datatable(head(dataset), class = 'cell-border stripe')

Data infert memiliki 248 observasi data dan 6 variabel

dim(dataset)
## [1] 248   8
colnames(dataset)
## [1] "education"      "age"            "parity"         "induced"       
## [5] "case"           "spontaneous"    "stratum"        "pooled.stratum"

Fungsi Data Wrangling

Pada bagian ini, praktikum akan menggunakan fungsi-fungsi sebagai berikut: summarise(), arrange(), filter(), select(), mutate()

Fungsi summarise()

Fungsi summarise digunakan untuk meringkas beberapa nilai data menjadi satu nilai. Fungsi ini akan menjadi sangat berguna apabila digabungkan fungsi lain dalam dplyr. na.rm = TRUE memberikan hasil fungsi dengan meniadakan nilai missing. Fungsi di dalam summarise yang dapat digunakan seperti mean(), median(), sd(), IQR(), mad(), min(), max(), quantile(), first(), last(), nth(), n(), n_distinct(), any(), dan all().

Pada praktikum ini dilakukan summarise dengan cara membentuk group berdasarkan case dan menghitung rata-rata dari variabel age

summarised_dataset = dataset %>%  group_by(case) %>%  summarise(mean_age = mean(age)) 
datatable(summarised_dataset, class = 'cell-border stripe')  %>%
formatStyle('mean_age',  color = '', backgroundColor = '#b3ffb3', fontWeight = 'bold')%>% formatRound('mean_age', 2) 

Fungsi arrange()

Fungsi ini berguna untuk mengurutkan data berdasarkan variabel. Variabel yang menjadi acuan untuk diurutkan dapat lebih dari satu dan dapat ditentukan apakah dari besar ke kecil atau dari kecil ke besar.

Pada praktikum ini dilakukan tindakan mengurutkan variabel age dari nilai terkecil hingga terbesar

arranged_dataset = dataset %>%  arrange(age) 
datatable(arranged_dataset, class = 'cell-border stripe')  %>%
formatStyle('age',  color = '', backgroundColor = '#b3ffb3', fontWeight = 'bold')

Fungsi filter()

Fungsi ini digunakan untuk menyeleksi dan menampilkan data sesuai dengan ketentuan.

Pada praktikum ini dilakukan filter variabel induced yang lebih besar dari 0 dan variabel spontaneous yang lebih besar dari 0

filtered_dataset = dataset %>%  filter(induced>0 & spontaneous>0) 
datatable(filtered_dataset, class = 'cell-border stripe')  %>%
formatStyle('induced',  color = '', backgroundColor = '#b3ffb3', fontWeight = 'bold')  %>%
formatStyle('spontaneous',  color = '', backgroundColor = '#b3ffb3', fontWeight = 'bold') 

Fungsi select()

Fungsi ini digunakan untuk mengambil satu atau beberapa variabel tertentu dari data.

Pada praktikum ini dilakukan select terhadap 4 variabel, yaitu education, case, stratum, dan pooled.stratum

selected_dataset = dataset %>% select(education,case,stratum,pooled.stratum)
datatable(selected_dataset, class = 'cell-border stripe') 

Fungsi mutate()

Fungsi ini dapat digunakan untuk menambahkan variabel baru. Variabel baru tersebut dapat berupa variabel kategorik maupun numerik. Bisa juga seperti kasus di bawah yang mana variabel tersebut merupakan sebuah fungsi dari variabel yang ada.

Pada praktikum ini dilakukan pembuatan variabel baru yaitu Percentile_Age yang merupakan percentile dari variabel age dan variabel age menjadi kategorik, yaitu ‘> mean of age’ dan ‘< mean of age’

mutated_dataset = dataset %>% mutate(percentile_age = ntile(age, 100))%>% mutate(categoric_age = ifelse(age > mean(age) , "> mean of age","< mean of age")) 
datatable(mutated_dataset, class = 'cell-border stripe')  %>%
formatStyle('percentile_age',  color = '', backgroundColor = '#b3ffb3', fontWeight = 'bold')%>%
formatStyle('categoric_age',  backgroundColor = styleEqual(c('> mean of age', '< mean of age'), c('#ffccff', '#cce6ff')))  

Penggunaan Fungsi Bersamaan

Fungsi dalam package dplyr dapat digunakan dan dikombinasikan secara bersama-sama sesuai dengan kebutuhan eksplorasi data

Berikut akan digunakan fungsi select(),filter(), max(), mean(), arrange(), dan mutate() secara bersama-sama

  • Memilih variabel education,case,age,parity,stratum,pooled.stratum
  • Filter variabel case = 1
  • Grouping berdasarkan variabel education
  • Menghitung rata-rata dari age,parity,stratum,pooled.stratum
  • Mengurutkan data berdasarkan variabel parity
  • Mutate variabel education menjadi data kategorik
wrangling_dataset = dataset %>% select(education,case,age,parity,stratum,pooled.stratum)%>%  filter(case==1) %>%  group_by(education)  %>%  summarise(mean_age = mean(age),mean_parity = mean(parity),mean_stratum = mean(stratum),mean_pooled.stratum = mean(pooled.stratum))%>% arrange(desc(mean_parity)) %>% mutate(education_categoric= ifelse(education == "0-5yrs" , 0, ifelse(education == "6-11yrs" , 1, 2)))
datatable(wrangling_dataset, class = 'cell-border stripe')%>%formatRound('mean_age', 2)%>%formatRound('mean_parity', 2)%>%formatRound('mean_stratum', 2)%>%formatRound('mean_pooled.stratum', 2)