Dosen Pengampu : Prof. Dr. Suhartono, M.Kom
Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malang
Fakultas : Sains dan Teknologi
Jurusan : Teknik Informatika
Kelas : (C) Linear Algebra
NIM : 210605110058
Untuk memanipulasi data di R , sebenarnya dapat dilakukan secara “manual” menggunakan syntax R , tetapi hal ini cukup menyulitkan jika data yang akan kita gunakan harus dimanipulasi secara masif dan complex, sehingga diperlukan library yang mempermudah proses manipulasi data ,salah satunya adalah library “dplyr” sebelum masuk kedalam cara menggunakan dplyr, kita kenali dulu apa saja fungsi-fungsi yang dimiliki oleh library ini, sebagai berikut.
rename() — digunakan untuk melakukan perubahan nama kolom
select() — memilih variabel/kolom yang ingin kita manipulasi
filter() — untuk menyaring data sesuai kriteria yang kita perlukan
slice() — memotong baris sesui keperluan
arrange() — mengurutkan data berdasarkan kolom dan kriteria yang dibuat
mutate() — menambah variabel baru dalam dataset
transmute() — menambah variabel sekaligus menjadikannya subset dari dataset
Beberapa alasan mengapa dplyr digunakan ketika melakukan manipulasi data yaitu pemrosesannya cepat sehingga meminimalisir waktu, kode yang simpel sehingga mudah dimengerti, dan penggunaan fungsi yang sistematis sehingga kode lebih rapi. Cara menginstall package dplyr yaitu sebagai berikut:
install.package(dplyr)
Sedangkan untuk memanggil dplyr yaitu dengan sintaks:
library(dplyr)
Beberapa alasan mengapa dplyr digunakan ketika melakukan manipulasi data yaitu pemrosesannya cepat sehingga meminimalisir waktu, kode yang simpel sehingga mudah dimengerti, dan penggunaan fungsi yang sistematis sehingga kode lebih rapi.
library(readxl)
## Warning: package 'readxl' was built under R version 4.1.2
library(readxl)
InflowBaliNusra <- read_excel(path = "C:/Users/ASUS/Documents/excel_algebra/InflowBaliNusra2.xlsx")
InflowBaliNusra
## # A tibble: 4 x 12
## Keterangan `2011` `2012` `2013` `2014` `2015` `2016` `2017` `2018` `2019`
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Bali Nusra 10322. 14613. 17512. 20807. 23008. 30965. 30797. 33866. 38116.
## 2 Bali 6394. 8202. 5066. 11590. 13072. 17914. 16962. 18610. 21422.
## 3 Nusa Tenggara ~ 1803. 3676. 7024. 5704. 6285. 8842. 8383. 9140. 9614.
## 4 Nusa Tenggara ~ 2125. 2735. 5422. 3512. 3651. 4210. 5452. 6116. 7080.
## # ... with 2 more variables: `2020` <dbl>, `2021` <dbl>
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.1.3
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5 v purrr 0.3.4
## v tibble 3.1.6 v dplyr 1.0.8
## v tidyr 1.2.0 v stringr 1.4.0
## v readr 2.1.2 v forcats 0.5.1
## Warning: package 'ggplot2' was built under R version 4.1.2
## Warning: package 'tibble' was built under R version 4.1.2
## Warning: package 'tidyr' was built under R version 4.1.3
## Warning: package 'readr' was built under R version 4.1.3
## Warning: package 'purrr' was built under R version 4.1.3
## Warning: package 'dplyr' was built under R version 4.1.3
## Warning: package 'forcats' was built under R version 4.1.3
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
BaliNusra1 <- select(InflowBaliNusra, `2020`)
BaliNusra1
## # A tibble: 4 x 1
## `2020`
## <dbl>
## 1 29400.
## 2 14735.
## 3 8007.
## 4 6657.
BaliNusra2 <- select(InflowBaliNusra, `2011`, `2013`, `2015`, `2019`, `2021`)
BaliNusra2
## # A tibble: 4 x 5
## `2011` `2013` `2015` `2019` `2021`
## <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 10322. 17512. 23008. 38116. 18892.
## 2 6394. 5066. 13072. 21422. 7505.
## 3 1803. 7024. 6285. 9614. 5888.
## 4 2125. 5422. 3651. 7080. 5498.
Jika variabel yang ingin Anda pilih cukup banyak sedangkan variabel yang ingin Anda buang lebih sedikit, Anda dapat menuliskan nama variabel dengan menambahkan tanda negatif (-) di depan nama atau indeks masing-masing variabel.
BaliNusra3 <- select(InflowBaliNusra, -`2021`)
BaliNusra3
## # A tibble: 4 x 11
## Keterangan `2011` `2012` `2013` `2014` `2015` `2016` `2017` `2018` `2019`
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Bali Nusra 10322. 14613. 17512. 20807. 23008. 30965. 30797. 33866. 38116.
## 2 Bali 6394. 8202. 5066. 11590. 13072. 17914. 16962. 18610. 21422.
## 3 Nusa Tenggara ~ 1803. 3676. 7024. 5704. 6285. 8842. 8383. 9140. 9614.
## 4 Nusa Tenggara ~ 2125. 2735. 5422. 3512. 3651. 4210. 5452. 6116. 7080.
## # ... with 1 more variable: `2020` <dbl>
Selain memilih kolom, select() juga dapat digunakan untuk mengubah nama kolom, misalnya
BaliNusraa <- InflowBaliNusra %>%
select(tahun = `2014`, `2015`, `2016`)
BaliNusraa
## # A tibble: 4 x 3
## tahun `2015` `2016`
## <dbl> <dbl> <dbl>
## 1 20807. 23008. 30965.
## 2 11590. 13072. 17914.
## 3 5704. 6285. 8842.
## 4 3512. 3651. 4210.
BaliNusra4 <- distinct(InflowBaliNusra, `2019`)
BaliNusra4
## # A tibble: 4 x 1
## `2019`
## <dbl>
## 1 38116.
## 2 21422.
## 3 9614.
## 4 7080.
Untuk mendapatkan nilai unik dari semua baris berdasarkan variabel tertentu tambahkan opsi .keep_all = TRUE setelah nama variable dalam fungsi distinct().
BaliNusra5 <- distinct(InflowBaliNusra, `2019`, .keep_all = TRUE)
BaliNusra5
## # A tibble: 4 x 12
## Keterangan `2011` `2012` `2013` `2014` `2015` `2016` `2017` `2018` `2019`
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Bali Nusra 10322. 14613. 17512. 20807. 23008. 30965. 30797. 33866. 38116.
## 2 Bali 6394. 8202. 5066. 11590. 13072. 17914. 16962. 18610. 21422.
## 3 Nusa Tenggara ~ 1803. 3676. 7024. 5704. 6285. 8842. 8383. 9140. 9614.
## 4 Nusa Tenggara ~ 2125. 2735. 5422. 3512. 3651. 4210. 5452. 6116. 7080.
## # ... with 2 more variables: `2020` <dbl>, `2021` <dbl>
filter() digunakan untuk menyeleksi atau memilih baris atau observasi berdasarkan nilainya. Dalam filter(), kita dapat menggunakan berbagai operator, seperti operator dasar <, <=, >, >, == (sama dengan) dan %in% (bagian dari). Argumen filter() yang lebih dari satu dapat digabungkan dengan bolean operator, yaitu & (and/dan), | (or/atau) dan ! (not/tidak).
BaliNusra6 <- InflowBaliNusra %>%
filter(Keterangan <= 'Bali Nusra') %>%
select(`2015`,`2016`)
BaliNusra6
## # A tibble: 2 x 2
## `2015` `2016`
## <dbl> <dbl>
## 1 23008. 30965.
## 2 13072. 17914.
BaliNusra7 <- InflowBaliNusra %>%
filter(Keterangan == 'Bali Nusra', Keterangan == 'Bali Nusra') %>%
select( -`2016`)
BaliNusra7
## # A tibble: 1 x 11
## Keterangan `2011` `2012` `2013` `2014` `2015` `2017` `2018` `2019` `2020`
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Bali Nusra 10322. 14613. 17512. 20807. 23008. 30797. 33866. 38116. 29400.
## # ... with 1 more variable: `2021` <dbl>
str(InflowBaliNusra)
## tibble [4 x 12] (S3: tbl_df/tbl/data.frame)
## $ Keterangan: chr [1:4] "Bali Nusra" "Bali" "Nusa Tenggara Barat" "Nusa Tenggara Timur"
## $ 2011 : num [1:4] 10322 6394 1803 2125
## $ 2012 : num [1:4] 14613 8202 3676 2735
## $ 2013 : num [1:4] 17512 5066 7024 5422
## $ 2014 : num [1:4] 20807 11590 5704 3512
## $ 2015 : num [1:4] 23008 13072 6285 3651
## $ 2016 : num [1:4] 30965 17914 8842 4210
## $ 2017 : num [1:4] 30797 16962 8383 5452
## $ 2018 : num [1:4] 33866 18610 9140 6116
## $ 2019 : num [1:4] 38116 21422 9614 7080
## $ 2020 : num [1:4] 29400 14735 8007 6657
## $ 2021 : num [1:4] 18892 7505 5888 5498
str(InflowBaliNusra %>% group_by(Keterangan))
## grouped_df [4 x 12] (S3: grouped_df/tbl_df/tbl/data.frame)
## $ Keterangan: chr [1:4] "Bali Nusra" "Bali" "Nusa Tenggara Barat" "Nusa Tenggara Timur"
## $ 2011 : num [1:4] 10322 6394 1803 2125
## $ 2012 : num [1:4] 14613 8202 3676 2735
## $ 2013 : num [1:4] 17512 5066 7024 5422
## $ 2014 : num [1:4] 20807 11590 5704 3512
## $ 2015 : num [1:4] 23008 13072 6285 3651
## $ 2016 : num [1:4] 30965 17914 8842 4210
## $ 2017 : num [1:4] 30797 16962 8383 5452
## $ 2018 : num [1:4] 33866 18610 9140 6116
## $ 2019 : num [1:4] 38116 21422 9614 7080
## $ 2020 : num [1:4] 29400 14735 8007 6657
## $ 2021 : num [1:4] 18892 7505 5888 5498
## - attr(*, "groups")= tibble [4 x 2] (S3: tbl_df/tbl/data.frame)
## ..$ Keterangan: chr [1:4] "Bali" "Bali Nusra" "Nusa Tenggara Barat" "Nusa Tenggara Timur"
## ..$ .rows : list<int> [1:4]
## .. ..$ : int 2
## .. ..$ : int 1
## .. ..$ : int 3
## .. ..$ : int 4
## .. ..@ ptype: int(0)
## ..- attr(*, ".drop")= logi TRUE
BaliNusraUp <- InflowBaliNusra %>%
group_by(Keterangan)
BaliNusraUp
## # A tibble: 4 x 12
## # Groups: Keterangan [4]
## Keterangan `2011` `2012` `2013` `2014` `2015` `2016` `2017` `2018` `2019`
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Bali Nusra 10322. 14613. 17512. 20807. 23008. 30965. 30797. 33866. 38116.
## 2 Bali 6394. 8202. 5066. 11590. 13072. 17914. 16962. 18610. 21422.
## 3 Nusa Tenggara ~ 1803. 3676. 7024. 5704. 6285. 8842. 8383. 9140. 9614.
## 4 Nusa Tenggara ~ 2125. 2735. 5422. 3512. 3651. 4210. 5452. 6116. 7080.
## # ... with 2 more variables: `2020` <dbl>, `2021` <dbl>
BaliNusraUp1 <- InflowBaliNusra %>%
mutate(`2022` = InflowBaliNusra$`2021`/2)
BaliNusraUp1
## # A tibble: 4 x 13
## Keterangan `2011` `2012` `2013` `2014` `2015` `2016` `2017` `2018` `2019`
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Bali Nusra 10322. 14613. 17512. 20807. 23008. 30965. 30797. 33866. 38116.
## 2 Bali 6394. 8202. 5066. 11590. 13072. 17914. 16962. 18610. 21422.
## 3 Nusa Tenggara ~ 1803. 3676. 7024. 5704. 6285. 8842. 8383. 9140. 9614.
## 4 Nusa Tenggara ~ 2125. 2735. 5422. 3512. 3651. 4210. 5452. 6116. 7080.
## # ... with 3 more variables: `2020` <dbl>, `2021` <dbl>, `2022` <dbl>
BaliNusraUbah <- arrange(InflowBaliNusra, `2011`)
BaliNusraUbah
## # A tibble: 4 x 12
## Keterangan `2011` `2012` `2013` `2014` `2015` `2016` `2017` `2018` `2019`
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Nusa Tenggara ~ 1803. 3676. 7024. 5704. 6285. 8842. 8383. 9140. 9614.
## 2 Nusa Tenggara ~ 2125. 2735. 5422. 3512. 3651. 4210. 5452. 6116. 7080.
## 3 Bali 6394. 8202. 5066. 11590. 13072. 17914. 16962. 18610. 21422.
## 4 Bali Nusra 10322. 14613. 17512. 20807. 23008. 30965. 30797. 33866. 38116.
## # ... with 2 more variables: `2020` <dbl>, `2021` <dbl>
ggplot2 adalah package yang berfungsi membuat grafik yang merepresentasikan data dengan menerapkan warna, simbol, dan lainnya. Package ini memiliki banyak fungsi dan plot yang bisa kita pilih untuk memvisualisasikan data. Beberapa kelebihan yang dimiliki ggplot2 yaitu antara lain fleksibel dalam penggunaannya, fungsi yang lengkap untuk visualisasi, dan penggunaan metodenya tidak ribet. Cara install dan penggunaan package ggplot2 sama dengan package yang sudah dibahas di poin sebelumnya yaitu:
install.package(ggplot2) #install package
library(ggplot2) #memanggil ggplot2
Contoh visualisasi data dengan ggplot2 bisa dilihat dibawah ini:
ggplot(data = InflowBaliNusra, mapping = aes(x = Keterangan, y = `2015`)) +
geom_point()
ggplot(data = InflowBaliNusra, mapping = aes(x = Keterangan, y = `2015`)) +
geom_bar(stat = "identity")
ggplot(InflowBaliNusra, aes(Keterangan,`2021`, color=`Keterangan`))+
geom_point()