Universitas : Universitas Islam Negeri Maulana Malik Ibrahim Malang
Jurusan : Teknik Informatika
Saat melakukan manipulasi data pada R kita dapat menggunakan package dplyr. Package ini dibuat oleh Handley Wickham dan Roman Francois yang berisi kumpulan fungsi yang memudahkan manipulasi data yaitu antara lain: sample() untuk mengambil sampel secara acak dari tabel, mutate() untuk menambah kolom, select() untuk mengambil data atau variabel yang dibutuhkan, arrange() untuk mengurutkan data, filter() untuk menyaring data, groupby() untuk mengelompokkan data dan lain lain.
library(readxl)
## Warning: package 'readxl' was built under R version 4.1.2
manipulasioutflow <- read_excel(path = "outflow tahunan1.xlsx")
manipulasioutflow
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.1.2
## -- 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.2
## Warning: package 'readr' was built under R version 4.1.2
## Warning: package 'purrr' was built under R version 4.1.2
## Warning: package 'dplyr' was built under R version 4.1.2
## Warning: package 'stringr' was built under R version 4.1.2
## Warning: package 'forcats' was built under R version 4.1.2
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
Sulawesi2011 <- select(manipulasioutflow, '2011')
Sulawesi2011
Sulawesi2 <- select(manipulasioutflow, `2012`, `2014`, `2016`, `2018`, `2020`)
Sulawesi2
Sulawesimin2011 <- select(manipulasioutflow, -'2017')
Sulawesimin2011
Sintaks ini menggunakan fungsi select, dan select ini tidak hanya untuk memilih kolom dalam jumlah banyak, melainkan juga bisa untuk mengganti nama kolomnya. misalnya :
Sulawesimin1 <- manipulasioutflow %>%
select(tahun = `2014`, `2018`, `2019`)
Sulawesimin1
library(dplyr)
Sulawesitahun2 <- manipulasioutflow %>% rename('2010' = '2011')
head(Sulawesitahun2)
Sulawesi4 <- distinct(manipulasioutflow, `2015`)
Sulawesi4
Sulawesi5 <- distinct(manipulasioutflow, `2015`, .keep_all = TRUE)
Sulawesi5
Baris tabel diseleksi dengan menggunakan fungsi filter().
Sulawesi6 <- manipulasioutflow %>%
filter(Provinsi <= 'Sulawesi Barat') %>%
select(`2018`,`2019`)
Sulawesi6
Sulawesi7 <- manipulasioutflow %>%
filter(Provinsi == 'Sulawesi Barat', Provinsi == 'Sulawesi Utara') %>%
select( -`2020`)
Sulawesi7
str(manipulasioutflow)
## tibble [11 x 12] (S3: tbl_df/tbl/data.frame)
## $ Provinsi: chr [1:11] "Sulampua" "Sulawesi Utara" "Sulawesi Tengah" "Sulawesi Selatan" ...
## $ 2011 : num [1:11] 36449 6606 4017 8967 2889 ...
## $ 2012 : num [1:11] 43623 6375 4458 11873 2950 ...
## $ 2013 : num [1:11] 64181 22740 4544 11485 4239 ...
## $ 2014 : num [1:11] 48231 7207 5696 15645 3537 ...
## $ 2015 : num [1:11] 53153 7202 5310 16236 4716 ...
## $ 2016 : num [1:11] 53145 7707 4962 15494 4488 ...
## $ 2017 : num [1:11] 56297 8421 5226 15159 5293 ...
## $ 2018 : num [1:11] 60935 7605 5578 16779 5224 ...
## $ 2019 : num [1:11] 60723 7367 5531 18089 5056 ...
## $ 2020 : num [1:11] 64828 7437 4674 20503 5129 ...
## $ 2021 : num [1:11] 33806 3050 2763 12017 2507 ...
str(manipulasioutflow %>% group_by(Provinsi))
## grouped_df [11 x 12] (S3: grouped_df/tbl_df/tbl/data.frame)
## $ Provinsi: chr [1:11] "Sulampua" "Sulawesi Utara" "Sulawesi Tengah" "Sulawesi Selatan" ...
## $ 2011 : num [1:11] 36449 6606 4017 8967 2889 ...
## $ 2012 : num [1:11] 43623 6375 4458 11873 2950 ...
## $ 2013 : num [1:11] 64181 22740 4544 11485 4239 ...
## $ 2014 : num [1:11] 48231 7207 5696 15645 3537 ...
## $ 2015 : num [1:11] 53153 7202 5310 16236 4716 ...
## $ 2016 : num [1:11] 53145 7707 4962 15494 4488 ...
## $ 2017 : num [1:11] 56297 8421 5226 15159 5293 ...
## $ 2018 : num [1:11] 60935 7605 5578 16779 5224 ...
## $ 2019 : num [1:11] 60723 7367 5531 18089 5056 ...
## $ 2020 : num [1:11] 64828 7437 4674 20503 5129 ...
## $ 2021 : num [1:11] 33806 3050 2763 12017 2507 ...
## - attr(*, "groups")= tibble [11 x 2] (S3: tbl_df/tbl/data.frame)
## ..$ Provinsi: chr [1:11] "Gorontalo" "Maluku" "Maluku Utara" "Papua" ...
## ..$ .rows : list<int> [1:11]
## .. ..$ : int 7
## .. ..$ : int 9
## .. ..$ : int 8
## .. ..$ : int 10
## .. ..$ : int 11
## .. ..$ : int 1
## .. ..$ : int 6
## .. ..$ : int 4
## .. ..$ : int 3
## .. ..$ : int 5
## .. ..$ : int 2
## .. ..@ ptype: int(0)
## ..- attr(*, ".drop")= logi TRUE
Sulawesiup <- manipulasioutflow %>%
group_by(Provinsi)
Sulawesiup
Sulawesiubah <- arrange(manipulasioutflow, `2012`)
Sulawesiubah
Sulawesiup1 <- manipulasioutflow %>%
mutate(`2021` = manipulasioutflow$`2020`/2)
Sulawesiup1
ggplot(data = manipulasioutflow, mapping = aes(x = Provinsi, y = `2011`)) +
geom_point()
ggplot(data = manipulasioutflow, mapping = aes(x = Provinsi, y = `2012`)) +
geom_point()