Praktikum 01 - Tugas Satria June Adwendi
Tugas untuk Praktikum 01 ini adalah :
- Cari Datasets selain
irisdanTeams.
- Anda hanya boleh menggunakan data di package
datasetsmaupun datasets di packageRlainnya.
- Pada datasets yang Anda pilih, Praktikkan penggunaan fungsi
summarise(),arrange(),filter(),mutate(),select()minimal 1 kali secara terpisah.
- Praktikan penggunaan fungsi tersebut secara bersama-sama.(jumlahnya bebas)
- Kerjakan tugas tersebut menggunakan
rmarkdown. Upload filehtmldinewlmsdan publish pekerjaan Anda tersebut diRpubsAnda masing-masing. Harap sertakan link ke Rpubs tersebut di filehtmlyang Anda kumpulkan dinewlms.
Import Data
Data yang digunakan adalah Datasets Titanic
library(dplyr) #untuk fungsi %>%##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(stats) #mengaktifkan fungsi-fungsi stat pada data yang bukan (data frame) tabel asli
library(datasets) #untuk data set titanic
data(Titanic)
Titanic<-tibble::as_tibble(datasets::Titanic)Untuk mengetahui deskripsi data Titanic gunakan:
??Titanic## starting httpd help server ... done
Diperoleh deskripsi data rivers adalah sebagai berikut: This data set provides information on the fate of passengers on the fatal maiden voyage of the ocean liner ‘Titanic’, summarized according to economic status (class), sex, age and survival.
Penggunaan Fungsi
dim(Titanic) #dimensi atau ukuran data## [1] 32 5
Data ‘Titanic’ terdiri dari 32 baris dan 5 kolom. Terdiri dari 4 kolom cross-tabulasi dan 1 kolom bernama n yang berisi jumlah penumpang sesuai cross-tabulasi tersebut.
A 4-dimensional array resulting from cross-tabulating 2201 observations on 4 variables. The variables and their levels are as follows:
No Name Levels 1 Class 1st, 2nd, 3rd, Crew 2 Sex Male, Female 3 Age Child, Adult 4 Survived No, Yes
head(Titanic)## # A tibble: 6 x 5
## Class Sex Age Survived n
## <chr> <chr> <chr> <chr> <dbl>
## 1 1st Male Child No 0
## 2 2nd Male Child No 0
## 3 3rd Male Child No 35
## 4 Crew Male Child No 0
## 5 1st Female Child No 0
## 6 2nd Female Child No 0
summary(Titanic) #melihat ringkasan data## Class Sex Age Survived
## Length:32 Length:32 Length:32 Length:32
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
## n
## Min. : 0.00
## 1st Qu.: 0.75
## Median : 13.50
## Mean : 68.78
## 3rd Qu.: 77.00
## Max. :670.00
Fungsi summarise()
Titanic %>% group_by(Class) %>% summarise(sum_n=sum(n), .groups='drop')## # A tibble: 4 x 2
## Class sum_n
## <chr> <dbl>
## 1 1st 325
## 2 2nd 285
## 3 3rd 706
## 4 Crew 885
Menghitung jumlah penumpang untuk setiap Class
Titanic %>% group_by(Class) %>% summarise(sum_n2=sum(n), .groups='drop')## # A tibble: 4 x 2
## Class sum_n2
## <chr> <dbl>
## 1 1st 325
## 2 2nd 285
## 3 3rd 706
## 4 Crew 885
Menghitung jumlah total penumpang untuk setiap kejadian selamat atau tidak
Titanic %>% group_by(Survived) %>% summarise(sum_n2=sum(n), .groups='drop')## # A tibble: 2 x 2
## Survived sum_n2
## <chr> <dbl>
## 1 No 1490
## 2 Yes 711
Fungsi arrange()
Mengurutkan data berdasarkan jumlah penumpang dari nilai terkecil
Titanic %>% arrange(n)## # A tibble: 32 x 5
## Class Sex Age Survived n
## <chr> <chr> <chr> <chr> <dbl>
## 1 1st Male Child No 0
## 2 2nd Male Child No 0
## 3 Crew Male Child No 0
## 4 1st Female Child No 0
## 5 2nd Female Child No 0
## 6 Crew Female Child No 0
## 7 Crew Male Child Yes 0
## 8 Crew Female Child Yes 0
## 9 1st Female Child Yes 1
## 10 Crew Female Adult No 3
## # ... with 22 more rows
Mengurutkan data berdasarkan jumlah penumpang dari nilai terbesar
Titanic %>% arrange(desc(n))## # A tibble: 32 x 5
## Class Sex Age Survived n
## <chr> <chr> <chr> <chr> <dbl>
## 1 Crew Male Adult No 670
## 2 3rd Male Adult No 387
## 3 Crew Male Adult Yes 192
## 4 2nd Male Adult No 154
## 5 1st Female Adult Yes 140
## 6 1st Male Adult No 118
## 7 3rd Female Adult No 89
## 8 2nd Female Adult Yes 80
## 9 3rd Female Adult Yes 76
## 10 3rd Male Adult Yes 75
## # ... with 22 more rows
Fungsi filter()
Memilih sebagian data dari penumpang yang selamat
Titanic %>% filter(Survived=="Yes")## # A tibble: 16 x 5
## Class Sex Age Survived n
## <chr> <chr> <chr> <chr> <dbl>
## 1 1st Male Child Yes 5
## 2 2nd Male Child Yes 11
## 3 3rd Male Child Yes 13
## 4 Crew Male Child Yes 0
## 5 1st Female Child Yes 1
## 6 2nd Female Child Yes 13
## 7 3rd Female Child Yes 14
## 8 Crew Female Child Yes 0
## 9 1st Male Adult Yes 57
## 10 2nd Male Adult Yes 14
## 11 3rd Male Adult Yes 75
## 12 Crew Male Adult Yes 192
## 13 1st Female Adult Yes 140
## 14 2nd Female Adult Yes 80
## 15 3rd Female Adult Yes 76
## 16 Crew Female Adult Yes 20
Fungsi select()
Fungsi select() dapat digunakan untuk memilih subset data berdasarkan peubah tertentu. Contoh dari class, Age dan jumlah penumpang
Titanic %>% select(Class, Age, n)## # A tibble: 32 x 3
## Class Age n
## <chr> <chr> <dbl>
## 1 1st Child 0
## 2 2nd Child 0
## 3 3rd Child 35
## 4 Crew Child 0
## 5 1st Child 0
## 6 2nd Child 0
## 7 3rd Child 17
## 8 Crew Child 0
## 9 1st Adult 118
## 10 2nd Adult 154
## # ... with 22 more rows
Fungsi mutate()
Menggunakan fungsi mutate() untuk menambahkan peubah baru pada data. Menambahkan data cost yang berisi nilai 1000 per jumlah penumpang
Titanic %>% mutate(cost=n*97)## # A tibble: 32 x 6
## Class Sex Age Survived n cost
## <chr> <chr> <chr> <chr> <dbl> <dbl>
## 1 1st Male Child No 0 0
## 2 2nd Male Child No 0 0
## 3 3rd Male Child No 35 3395
## 4 Crew Male Child No 0 0
## 5 1st Female Child No 0 0
## 6 2nd Female Child No 0 0
## 7 3rd Female Child No 17 1649
## 8 Crew Female Child No 0 0
## 9 1st Male Adult No 118 11446
## 10 2nd Male Adult No 154 14938
## # ... with 22 more rows
Penggabungan Beberapa Fungsi
Penggunaan Fungsi Mutate, Filter dan Summarize. Kita akan melakukan perhitungan berapa total biaya ang dikeluarkan untuk setiap kelas jika setiap penumpang yang selamat membutuhkan biaya 97 dollar untuk evakuasi dan peralatan lainnya.
Titanic %>% mutate(cost=n*97) %>% filter(Survived=="Yes") %>% group_by(Class) %>% summarise(sum_y_cost=sum(cost), .groups='drop')## # A tibble: 4 x 2
## Class sum_y_cost
## <chr> <dbl>
## 1 1st 19691
## 2 2nd 11446
## 3 3rd 17266
## 4 Crew 20564
Demikian, Terima Kasih
Satria June Adwendi, IPB University, sjadwendi@apps.ipb.ac.id↩︎