tidyverse package dengan morley datasets

Klik disini untuk ke halaman rpubs.

tidyverse Package

tidyverse Package merupakan paket yang berfungsi untuk melakukan pengolahan data pada aplikasi R seperti import, export, visualisasi, dan pemodelan data. Package ini berisi kumpulan dari beberapa package. Salah satu contohnya seperti tidyr yang digunakan untuk merapihkan data.

Pada penggunaan pertama akan install terlebih dulu tidyverse package yang akan digunakan

install.packages("tidyverse")
library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.0 --
## v ggplot2 3.3.2     v purrr   0.3.4
## v tibble  3.0.4     v dplyr   1.0.2
## v tidyr   1.1.2     v stringr 1.4.0
## v readr   1.4.0     v forcats 0.5.0
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()

Import Data morley

Digunakan data morley dari package datasets

Data ini berisi sebuah data klasik Michelson (tapi bukan dengan Morley) pada pengukuran kecepatan cahaya yang dilakukan pada tahun 1879. Data terdiri dari lima eksperimen, masing-masing terdiri dari 20 'percobaan' berturut-turut. Responsnya adalah kecepatan pengukuran cahaya, dengan kode yang sesuai (km/detik,dikurangi 299.000).

Data terdiri dari 100 observasi dan 3 variabel. Variabel/peubahnya adalah Expt yang merupakan Nomor percobaan dari 1 sampai 5, variabel/peubah Run merupakan nomor proses (pengulangan) dalam setiap eksperimen, dan variabel/peubah Speed yang merupakan hasil pengukuran kecepatan cahaya.

Data di sini dipandang sebagai eksperimen blok acak dengan 'Expt' dan 'Run' sebagai faktor. 'Run' juga dapat dianggap sebagai variasi kuantitatif untuk memperhitungkan perubahan linier (atau polinomial) dalam pengukuran selama eksperimen tunggal.

library(datasets)
data(morley)
head(morley)
##     Expt Run Speed
## 001    1   1   850
## 002    1   2   740
## 003    1   3   900
## 004    1   4  1070
## 005    1   5   930
## 006    1   6   850
morley<-tibble::as_tibble(morley)
#melihat dimensi data morley
dim(morley)
## [1] 100   3

Artinya, data morley terdiri dari 100 baris (pengamatan) dan 3 kolom (variabel/peubah).

Penggunaan dplyr Package

Seperti dijelaskan sebelumnya, tidyverse merupakan kumpulan dari beberapa package, salah satunya adalah package dplyr. dplyr adalah package di R yang dapat digunakan untuk memanipulasi data. Package ini dikembangkan oleh Hadley Wickham dan Roman Francois yang memberikan beberapa fungsi yang mudah digunakan. Package ini sangat berguna ketika digunakan untuk melakukan analisis dan eksplorasi data. Ada banyak fungsi dalam dplyr package. Kali ini akan digunakan beberapa fungsi, yaitu summarise(),arrange(), filter(),select(), dan mutate()

library(dplyr)

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 kasus ini, fungsi summarise() akan digunakan untuk meringkas data morley yang bertujuan untuk mengetahui rata-rata kecepatan cahaya (speed) serta nilai minimum dan maksimum dari kecepatan cahaya menurut nomor eksperimen (Expt).

#menghitung rata-rata kecepatan cahaya menurut nomor eksperimen
morley %>% group_by(Expt) %>% summarise(Mean_Speed= mean(Speed), Min_Speed= min(Speed), Max_Speed=max(Speed),.groups='drop')
## # A tibble: 5 x 4
##    Expt Mean_Speed Min_Speed Max_Speed
##   <int>      <dbl>     <int>     <int>
## 1     1       909        650      1070
## 2     2       856        760       960
## 3     3       845        620       970
## 4     4       820.       720       920
## 5     5       832.       740       950

Fungsi arrange()

Fungsi arrange() digunakan untuk mengurutkan data berdasarkan variabel/peubah. Variabel/peubah yang menjadi acuan untuk diurutkan dapat lebih dari satu dan dapat ditentukan apakah dari besar ke kecil atau dari kecil ke besar.

Dalam kasus ini akan digunakan fungsi arrange() untuk mengurutkan data morley berdasarkan kecepatan cahaya (Speed) dari nilai terbesar ke nilai terkecil .

#mengurutkan data morley berdasarkan peubah Speed dari nilai terbesar
morley %>% arrange(desc(Speed))
## # A tibble: 100 x 3
##     Expt   Run Speed
##    <int> <int> <int>
##  1     1     4  1070
##  2     1    11  1000
##  3     1    17  1000
##  4     1    18  1000
##  5     1     8   980
##  6     1     9   980
##  7     1    12   980
##  8     3     9   970
##  9     1    19   960
## 10     1    20   960
## # ... with 90 more rows

Fungsi filter()

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

Dalam kasus ini, fungsi filter() digunakan untuk memilih sebagian data morley untuk eksperimen nomor 1 (Expt=1).

#memilih data morley untuk eksperimen nomor 1 (Expt=1)
morley %>% filter(Expt==1)
## # A tibble: 20 x 3
##     Expt   Run Speed
##    <int> <int> <int>
##  1     1     1   850
##  2     1     2   740
##  3     1     3   900
##  4     1     4  1070
##  5     1     5   930
##  6     1     6   850
##  7     1     7   950
##  8     1     8   980
##  9     1     9   980
## 10     1    10   880
## 11     1    11  1000
## 12     1    12   980
## 13     1    13   930
## 14     1    14   650
## 15     1    15   760
## 16     1    16   810
## 17     1    17  1000
## 18     1    18  1000
## 19     1    19   960
## 20     1    20   960

Fungsi select()

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

Dalam kasus ini, fungsi select() digunakan untuk memilih subset data morley berupa variabel/peubah nomor percobaan (Expt) dan kecepatan cahaya (Speed).

morley %>% select(Expt,Speed)
## # A tibble: 100 x 2
##     Expt Speed
##    <int> <int>
##  1     1   850
##  2     1   740
##  3     1   900
##  4     1  1070
##  5     1   930
##  6     1   850
##  7     1   950
##  8     1   980
##  9     1   980
## 10     1   880
## # ... with 90 more rows

Fungsi mutate()

Fungsi mutate() digunakan untuk menambahkan variabel baru. Variabel baru tersebut dapat berupa variabel kategorik maupun numerik. Bisa juga variabel tersebut merupakan sebuah fungsi dari variabel yang ada.

Dalam kasus ini, fungsi mutate() digunakan untuk menambahkan peubah baru pada data morley yaitu variabel/peubah kategori kecepatan cahaya (CatSpeedMean) yang diperoleh dari mengkategorikan kecepatan di atas atau sama dengan rata-rata dan di bawah rata-rata.

Kode kategori kecepatan cahaya yang digunakan berdasarkan mean: 1 = kecepatan cahaya yang lebih dari atau sama dengan nilai rata-rata kecepatan cahaya dan 2 = kecepatan cahaya yang kurang dari nilai rata-rata kecepatan cahaya

#Membuat variabel baru bernama CatSpeedMean yang mengkategorikan speed menjadi 2 kategori (1=lebih dari atau sama dengan rata-rata, 2= kurang dari rata-rata)
morley %>% mutate(CatSpeedMean=if_else(Speed>mean(Speed),1,2))
## # A tibble: 100 x 4
##     Expt   Run Speed CatSpeedMean
##    <int> <int> <int>        <dbl>
##  1     1     1   850            2
##  2     1     2   740            2
##  3     1     3   900            1
##  4     1     4  1070            1
##  5     1     5   930            1
##  6     1     6   850            2
##  7     1     7   950            1
##  8     1     8   980            1
##  9     1     9   980            1
## 10     1    10   880            1
## # ... with 90 more rows

Penggunaan Fungsi Secara Bersama-Sama

Fungsi-fungsi yang ada dalam 'dplyr' dapat digunakan secara bersama-sama sesuai dengan kebutuhan.

Pada kasus ini, akan digunakan kombinasi antara fungsi summarise(),arrange(),filter(),select(), dan mutate() secara bersama-sama.

  1. Penggunaan Fungsi summarise()dan arrange()secara bersama-sama

Fungsi summarise()digunakan meringkas data untuk mengetahui median kecepatan cahaya (MedSpeed) menurut nomor eksperimen (Expt).

Fungsi arrange() digunakan untuk mengurutkan median kecepatan cahaya (MedSpeed) dari besar ke besar

morley %>% group_by(Expt) %>% summarise (MedSpeed=median(Speed),.groups='drop') %>% arrange(desc(MedSpeed))
## # A tibble: 5 x 2
##    Expt MedSpeed
##   <int>    <dbl>
## 1     1      940
## 2     3      855
## 3     2      845
## 4     4      815
## 5     5      810
  1. Penggunaan mutate(), select(),filter(), dan arrange()secara bersama-sama

Fungsi mutate() digunakan untuk membuat variabel/peubah baru berupa kategori kecepatan cahaya berdasarkan nilai median (CatSpeedMed). Kode kategori kecepatan cahaya yang digunakan berdasarkan median: 1 = kecepatan cahaya yang lebih dari atau sama dengan nilai median kecepatan cahaya dan 2 = kecepatan cahaya yang kurang dari nilai median kecepatan cahaya

Fungsi select() digunakan untuk memilih data nomor eksperimen (Expt), Nomor proses/pengulangan dalam setiap eksperimen (Run), dan kategori kecepatan cahaya berdasarkan median (CatSpeedMed)

Fungsi filter() digunakan untuk memilih kategori kecepatan cahaya berdasarkan median (CatSpeedMed) berkode 1 (kecepatan cahaya yang lebih dari atau sama dengan nilai median kecepatan cahaya)

Fungsi arrange() digunakan untuk mengurutkan nomor eksperimen (Expt) dari kecil ke besar

morley %>% mutate(CatSpeedMed=if_else(Speed>median(Speed),1,2)) %>%  select(Expt,Run,CatSpeedMed) %>% filter(CatSpeedMed==1) %>% arrange(Expt) %>% group_by(Expt)
## # A tibble: 45 x 3
## # Groups:   Expt [5]
##     Expt   Run CatSpeedMed
##    <int> <int>       <dbl>
##  1     1     3           1
##  2     1     4           1
##  3     1     5           1
##  4     1     7           1
##  5     1     8           1
##  6     1     9           1
##  7     1    10           1
##  8     1    11           1
##  9     1    12           1
## 10     1    13           1
## # ... with 35 more rows

Referensi

Anisa, R., Dito, G.A., dan Nurussadad, A.A. (February 9, 2021). Praktikum 01 - Pengenalan tidyverse. Retrieved from https://rpubs.com/nurussadad/STA581-01-tidyverse

Mubarok, M.I. (May 1, 2018). Manipulasi Data dengan Library(dplyr) R.Retrieved from https://muhammadilhammubarok.wordpress.com/2018/05/01/manipulasi-data-dengan-librarydplyr-di-r/

Primandari, A.H. (March 2, 2018). Query Data Menggunakan R. Retrieved from https://rpubs.com/arumprimandari/368022

Primandari, A.H. (March 11, 2018). Membuat Fungsi dalam R. Retrieved from https://rpubs.com/arumprimandari/368914


  1. Tugas Praktikum 1 STA581 Sains Data, Mahasiswa Pascasarjana Statistika dan Sains Data, IPB University, reniamelia@apps.ipb.ac.id