Tugas Praktikum SD-1

Installing The Package

Package tidyverse merupakan kumpulan dari beberapa package, di antaranya adalah

  • readr digunakan untuk mengimpor data tabular

  • tidyr digunakan untuk merapihkan data

  • dplyr digunakan untuk memanipulasi data

  • ggplot2 digunakan untuk visualisasi data

library(tidyverse)

Import Data

Pada tugas ini digunakan data starwars yang berasal dari package dplyr yang bersumber dari SWAPI Pada data ini memiliki 87 baris dan 13 kolom (variabel), variabel-variabel pada data tersebut adalah name nama karakter pada film starwars, height tinggi badan dari karakter, mass berat badan dari karakter, hair_color warna rambut karakter, skin_color warna kulit karakter, eye_color warna mata karakter, birth_year tahun lahir (sebelum peperangan Yavin), sex jenis kelamin karakter, gender identitas gender karakter, homeworld nama asal daerah, species spesies karakter, films daftar film dimana karakter tersebut ada dalam film, vehicles daftar kendaraan dimana karakter menggunakan, starships daftar kapal dimana karakter menggunakan

data("starwars")

Fungsi Data Wrangling

Data wrangling dengan package dplyr merupakan salah satu bagian dari package tidyverse. Data Wrangling berisi fungsi-fungsi untuk memodifikasi dan meringkas data dari suatu database. Berikut fungsi-fungsi untuk Data Wrangling yang digunakan dalam praktikum ini: summarise(), arrange(), filter(), mutate(), select()

library(dplyr)

Fungsi summarise()

Penggunaan fungsi summarise() untuk meringkas data

# Meringkas data dengan menghitung rata-rata berat badan di karakter starwars berdasarkan species-nya, pada perintah ini selain berisi perintah untuk summarise ditambah perintah tambahan untuk menghilangkan data 'NA'
x <- starwars %>% group_by(species) %>% summarise(mean=mean(mass), .groups='drop')
rataan <- na.omit(x)
rataan
## # A tibble: 25 x 2
##    species    mean
##    <chr>     <dbl>
##  1 Aleena       15
##  2 Besalisk    102
##  3 Cerean       82
##  4 Clawdite     55
##  5 Dug          40
##  6 Ewok         20
##  7 Geonosian    80
##  8 Hutt       1358
##  9 Kaleesh     159
## 10 Kel Dor      80
## # ... with 15 more rows

Fungsi arrange()

Penggunaan fungsi arrange() untuk mengurutkan data

# Mengurutkan berdasarkan variabel berat badan karakter (mass) dari nilai terkecil
starwars %>% arrange(mass)
## # A tibble: 87 x 14
##    name  height  mass hair_color skin_color eye_color birth_year sex   gender
##    <chr>  <int> <dbl> <chr>      <chr>      <chr>          <dbl> <chr> <chr> 
##  1 Ratt~     79    15 none       grey, blue unknown           NA male  mascu~
##  2 Yoda      66    17 white      green      brown            896 male  mascu~
##  3 Wick~     88    20 brown      brown      brown              8 male  mascu~
##  4 R2-D2     96    32 <NA>       white, bl~ red               33 none  mascu~
##  5 R5-D4     97    32 <NA>       white, red red               NA none  mascu~
##  6 Sebu~    112    40 none       grey, red  orange            NA male  mascu~
##  7 Dud ~     94    45 none       blue, grey yellow            NA male  mascu~
##  8 Padm~    165    45 brown      light      brown             46 fema~ femin~
##  9 Wat ~    193    48 none       green, gr~ unknown           NA male  mascu~
## 10 Sly ~    178    48 none       pale       white             NA <NA>  <NA>  
## # ... with 77 more rows, and 5 more variables: homeworld <chr>, species <chr>,
## #   films <list>, vehicles <list>, starships <list>
# Mengurutkan berdasarkan variabel berat badan dari nilai terbesar
starwars %>% arrange(desc(mass))
## # A tibble: 87 x 14
##    name  height  mass hair_color skin_color eye_color birth_year sex   gender
##    <chr>  <int> <dbl> <chr>      <chr>      <chr>          <dbl> <chr> <chr> 
##  1 Jabb~    175  1358 <NA>       green-tan~ orange         600   herm~ mascu~
##  2 Grie~    216   159 none       brown, wh~ green, y~       NA   male  mascu~
##  3 IG-88    200   140 none       metal      red             15   none  mascu~
##  4 Dart~    202   136 none       white      yellow          41.9 male  mascu~
##  5 Tarf~    234   136 brown      brown      blue            NA   male  mascu~
##  6 Owen~    178   120 brown, gr~ light      blue            52   male  mascu~
##  7 Bossk    190   113 none       green      red             53   male  mascu~
##  8 Chew~    228   112 brown      unknown    blue           200   male  mascu~
##  9 Jek ~    180   110 brown      fair       blue            NA   male  mascu~
## 10 Dext~    198   102 none       brown      yellow          NA   male  mascu~
## # ... with 77 more rows, and 5 more variables: homeworld <chr>, species <chr>,
## #   films <list>, vehicles <list>, starships <list>

Fungsi filter()

Menggunakan fungsi filter() untuk memilih sebagian data berdasarkan nilai tertentu

# Memilih data berdasarkan species karakter yaitu Droid, untuk memperbaiki tampilan data dilakukan pengurangan kolom dengan perintah sunbset
y <- starwars %>% filter(species=="Droid")
droid <- subset(y, select = -c(films,vehicles,starships,eye_color,skin_color,hair_color))
print.data.frame(head (droid))
##     name height mass birth_year  sex    gender homeworld species
## 1  C-3PO    167   75        112 none masculine  Tatooine   Droid
## 2  R2-D2     96   32         33 none masculine     Naboo   Droid
## 3  R5-D4     97   32         NA none masculine  Tatooine   Droid
## 4  IG-88    200  140         15 none masculine      <NA>   Droid
## 5 R4-P17     96   NA         NA none  feminine      <NA>   Droid
## 6    BB8     NA   NA         NA none masculine      <NA>   Droid

Fungsi select()

Fungsi select() dapat digunakan untuk memilih subset data berdasarkan peubah tertentu

# Memilih data pada variabel species, mass, dan height
starwars %>% select(species,mass,height)
## # A tibble: 87 x 3
##    species  mass height
##    <chr>   <dbl>  <int>
##  1 Human      77    172
##  2 Droid      75    167
##  3 Droid      32     96
##  4 Human     136    202
##  5 Human      49    150
##  6 Human     120    178
##  7 Human      75    165
##  8 Droid      32     97
##  9 Human      84    183
## 10 Human      77    182
## # ... with 77 more rows

Fungsi mutate()

Menggunakan fungsi mutate() untuk menambahkan peubah baru pada data

# Menambahkan variabel berat badan ideal dari karakter starwars (Bila bernilai 1 berarti berat badan sangat ideal) pada fungsi ini juga dilakukan pengurangan variabel kolom agar tampilan data lebih mudah dilihat
z <- starwars %>% mutate(normw=(height-100)/mass)
wnorm <- subset(z, select = -c(films,vehicles,starships,eye_color,skin_color,hair_color, gender))
print.data.frame(head (wnorm))
##             name height mass birth_year    sex homeworld species      normw
## 1 Luke Skywalker    172   77       19.0   male  Tatooine   Human  0.9350649
## 2          C-3PO    167   75      112.0   none  Tatooine   Droid  0.8933333
## 3          R2-D2     96   32       33.0   none     Naboo   Droid -0.1250000
## 4    Darth Vader    202  136       41.9   male  Tatooine   Human  0.7500000
## 5    Leia Organa    150   49       19.0 female  Alderaan   Human  1.0204082
## 6      Owen Lars    178  120       52.0   male  Tatooine   Human  0.6500000

Fungsi Gabungan

Fungsi yang digunakan dalam menggabungkan fungsi-fungsi sebelumnya secara bersama-sama

# Pada fungsi ini ingin melihat rasio antara tinggi badan dan berat badan karakter pada species Doroid
starwars %>% select(species,mass,height,homeworld,gender) %>% filter(species=="Droid")%>% mutate(normw=(height-100)/mass)
## # A tibble: 6 x 6
##   species  mass height homeworld gender      normw
##   <chr>   <dbl>  <int> <chr>     <chr>       <dbl>
## 1 Droid      75    167 Tatooine  masculine  0.893 
## 2 Droid      32     96 Naboo     masculine -0.125 
## 3 Droid      32     97 Tatooine  masculine -0.0938
## 4 Droid     140    200 <NA>      masculine  0.714 
## 5 Droid      NA     96 <NA>      feminine  NA     
## 6 Droid      NA     NA <NA>      masculine NA