Cara Memanipulasi data dengan library dplyr

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.

Data outflow uang kartal Pulau jawa

library(readxl)
## Warning: package 'readxl' was built under R version 4.1.2
dplyroutflow1 <- read_excel(path = "D:/Matkul Sem2/Linear Algebra/pivot outflow jawa.xlsx")
dplyroutflow1
## # A tibble: 7 x 12
##   Provinsi `2011` `2012` `2013` `2014` `2015` `2016` `2017` `2018` `2019` `2020`
##   <chr>     <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
## 1 DKI Jak~ 1.02e5 1.36e5 1.49e5 1.52e5 1.64e5 1.71e5 1.82e5 1.88e5 1.98e5 1.64e5
## 2 Jawa     8.35e4 1.11e5 9.90e4 1.47e5 1.72e5 1.91e5 2.29e5 2.53e5 2.72e5 2.51e5
## 3 Jawa Ba~ 2.08e4 2.89e4 2.31e4 4.09e4 4.71e4 4.94e4 5.38e4 6.14e4 6.17e4 5.72e4
## 4 Jawa Te~ 2.00e4 2.85e4 2.95e4 3.91e4 4.68e4 5.37e4 6.28e4 6.94e4 7.24e4 7.23e4
## 5 Yogyaka~ 7.54e3 9.49e3 9.71e3 1.32e4 1.41e4 1.30e4 1.68e4 2.04e4 2.14e4 1.66e4
## 6 Jawa Ti~ 3.52e4 4.45e4 3.67e4 5.39e4 6.36e4 7.45e4 9.34e4 9.80e4 1.06e5 9.34e4
## 7 Banten   0      0      0      0      0      0      2.11e3 4.05e3 1.10e4 1.18e4
## # ... with 1 more variable: 2021 <dbl>
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.4     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 '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 'forcats' was built under R version 4.1.2
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()

Menghapus Beberapa Variabel yang tidak diperlukan

jawa2015 <- select(dplyroutflow1, '2015')
jawa2015
## # A tibble: 7 x 1
##    `2015`
##     <dbl>
## 1 163750.
## 2 171568.
## 3  47063.
## 4  46840.
## 5  14080.
## 6  63585.
## 7      0
jawamin2 <- select(dplyroutflow1, '2011', '2012', '2013', '2014', '2016', '2017', '2018', '2020', '2021')
jawamin2
## # A tibble: 7 x 9
##    `2011`  `2012`  `2013`  `2014`  `2016`  `2017`  `2018`  `2020`  `2021`
##     <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>
## 1 101604. 136467. 149241. 152276. 170614. 181553. 187820. 163779.  94033.
## 2  83511. 111363.  98969. 147069. 190568. 228905. 253125. 251363. 143340.
## 3  20782.  28895.  23067.  40857.  49405.  53825.  61358.  57235.  34763.
## 4  19975.  28493.  29529.  39110.  53659.  62761.  69368.  72342.  44455.
## 5   7538.   9486.   9708.  13171.  13013.  16810.  20357.  16619.   9652.
## 6  35217.  44489.  36665.  53931.  74491.  93396.  97995.  93374.  46029.
## 7      0       0       0       0       0    2113.   4047.  11793.   8441.

Memilih Variebel yang akan digunakan

jawamin2015 <- select(dplyroutflow1, -'2019')
jawamin2015
## # A tibble: 7 x 11
##   Provinsi `2011` `2012` `2013` `2014` `2015` `2016` `2017` `2018` `2020` `2021`
##   <chr>     <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
## 1 DKI Jak~ 1.02e5 1.36e5 1.49e5 1.52e5 1.64e5 1.71e5 1.82e5 1.88e5 1.64e5 9.40e4
## 2 Jawa     8.35e4 1.11e5 9.90e4 1.47e5 1.72e5 1.91e5 2.29e5 2.53e5 2.51e5 1.43e5
## 3 Jawa Ba~ 2.08e4 2.89e4 2.31e4 4.09e4 4.71e4 4.94e4 5.38e4 6.14e4 5.72e4 3.48e4
## 4 Jawa Te~ 2.00e4 2.85e4 2.95e4 3.91e4 4.68e4 5.37e4 6.28e4 6.94e4 7.23e4 4.45e4
## 5 Yogyaka~ 7.54e3 9.49e3 9.71e3 1.32e4 1.41e4 1.30e4 1.68e4 2.04e4 1.66e4 9.65e3
## 6 Jawa Ti~ 3.52e4 4.45e4 3.67e4 5.39e4 6.36e4 7.45e4 9.34e4 9.80e4 9.34e4 4.60e4
## 7 Banten   0      0      0      0      0      0      2.11e3 4.05e3 1.18e4 8.44e3

Sintaks ini menggunakan fungsi select, dan select ini tidak hanya untuk memilih kolom dalam jumlah banyak, melainkan juga bisa untuk mengganti nama kolomnya. misalnya :

jawamin1 <- dplyroutflow1 %>%
  select(tahun = `2017`, `2018`, `2019`)
jawamin1
## # A tibble: 7 x 3
##     tahun  `2018`  `2019`
##     <dbl>   <dbl>   <dbl>
## 1 181553. 187820. 197818.
## 2 228905. 253125. 271957.
## 3  53825.  61358.  61692.
## 4  62761.  69368.  72363.
## 5  16810.  20357.  21353.
## 6  93396.  97995. 105514.
## 7   2113.   4047.  11035.

Mengganti tabel pada tahun

library(dplyr)
jawatahun2 <- dplyroutflow1 %>% rename('2010' = '2011')
head(jawatahun2)
## # A tibble: 6 x 12
##   Provinsi `2010` `2012` `2013` `2014` `2015` `2016` `2017` `2018` `2019` `2020`
##   <chr>     <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
## 1 DKI Jak~ 1.02e5 1.36e5 1.49e5 1.52e5 1.64e5 1.71e5 1.82e5 1.88e5 1.98e5 1.64e5
## 2 Jawa     8.35e4 1.11e5 9.90e4 1.47e5 1.72e5 1.91e5 2.29e5 2.53e5 2.72e5 2.51e5
## 3 Jawa Ba~ 2.08e4 2.89e4 2.31e4 4.09e4 4.71e4 4.94e4 5.38e4 6.14e4 6.17e4 5.72e4
## 4 Jawa Te~ 2.00e4 2.85e4 2.95e4 3.91e4 4.68e4 5.37e4 6.28e4 6.94e4 7.24e4 7.23e4
## 5 Yogyaka~ 7.54e3 9.49e3 9.71e3 1.32e4 1.41e4 1.30e4 1.68e4 2.04e4 2.14e4 1.66e4
## 6 Jawa Ti~ 3.52e4 4.45e4 3.67e4 5.39e4 6.36e4 7.45e4 9.34e4 9.80e4 1.06e5 9.34e4
## # ... with 1 more variable: 2021 <dbl>

Menggambil Nilai yang tidak Duplikasi dari Variabel yang ada

Dari Sebuah Variabel

jawa4 <- distinct(dplyroutflow1, `2016`)
jawa4
## # A tibble: 7 x 1
##    `2016`
##     <dbl>
## 1 170614.
## 2 190568.
## 3  49405.
## 4  53659.
## 5  13013.
## 6  74491.
## 7      0

Dari Semua Variabel

jawa5 <- distinct(dplyroutflow1, `2016`, .keep_all = TRUE)
jawa5
## # A tibble: 7 x 12
##   Provinsi `2011` `2012` `2013` `2014` `2015` `2016` `2017` `2018` `2019` `2020`
##   <chr>     <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
## 1 DKI Jak~ 1.02e5 1.36e5 1.49e5 1.52e5 1.64e5 1.71e5 1.82e5 1.88e5 1.98e5 1.64e5
## 2 Jawa     8.35e4 1.11e5 9.90e4 1.47e5 1.72e5 1.91e5 2.29e5 2.53e5 2.72e5 2.51e5
## 3 Jawa Ba~ 2.08e4 2.89e4 2.31e4 4.09e4 4.71e4 4.94e4 5.38e4 6.14e4 6.17e4 5.72e4
## 4 Jawa Te~ 2.00e4 2.85e4 2.95e4 3.91e4 4.68e4 5.37e4 6.28e4 6.94e4 7.24e4 7.23e4
## 5 Yogyaka~ 7.54e3 9.49e3 9.71e3 1.32e4 1.41e4 1.30e4 1.68e4 2.04e4 2.14e4 1.66e4
## 6 Jawa Ti~ 3.52e4 4.45e4 3.67e4 5.39e4 6.36e4 7.45e4 9.34e4 9.80e4 1.06e5 9.34e4
## 7 Banten   0      0      0      0      0      0      2.11e3 4.05e3 1.10e4 1.18e4
## # ... with 1 more variable: 2021 <dbl>

Menyeleksi Baris pada Tabel

Baris tabel diseleksi dengan menggunakan fungsi filter().

jawa6 <- dplyroutflow1 %>%
  filter(Provinsi <= 'Jawa barat') %>%
    select(`2018`,`2019`)
jawa6
## # A tibble: 3 x 2
##    `2018`  `2019`
##     <dbl>   <dbl>
## 1 187820. 197818.
## 2 253125. 271957.
## 3   4047.  11035.
jawa7 <- dplyroutflow1 %>%
  filter(Provinsi == 'Jawa', Provinsi == 'Banten') %>%
    select( -`2020`)
jawa7
## # A tibble: 0 x 11
## # ... with 11 variables: Provinsi <chr>, 2011 <dbl>, 2012 <dbl>, 2013 <dbl>,
## #   2014 <dbl>, 2015 <dbl>, 2016 <dbl>, 2017 <dbl>, 2018 <dbl>, 2019 <dbl>,
## #   2021 <dbl>
str(dplyroutflow1)
## tibble [7 x 12] (S3: tbl_df/tbl/data.frame)
##  $ Provinsi: chr [1:7] "DKI Jakarta" "Jawa" "Jawa Barat" "Jawa Tengah" ...
##  $ 2011    : num [1:7] 101604 83511 20782 19975 7538 ...
##  $ 2012    : num [1:7] 136467 111363 28895 28493 9486 ...
##  $ 2013    : num [1:7] 149241 98969 23067 29529 9708 ...
##  $ 2014    : num [1:7] 152276 147069 40857 39110 13171 ...
##  $ 2015    : num [1:7] 163750 171568 47063 46840 14080 ...
##  $ 2016    : num [1:7] 170614 190568 49405 53659 13013 ...
##  $ 2017    : num [1:7] 181553 228905 53825 62761 16810 ...
##  $ 2018    : num [1:7] 187820 253125 61358 69368 20357 ...
##  $ 2019    : num [1:7] 197818 271957 61692 72363 21353 ...
##  $ 2020    : num [1:7] 163779 251363 57235 72342 16619 ...
##  $ 2021    : num [1:7] 94033 143340 34763 44455 9652 ...
str(dplyroutflow1 %>% group_by(Provinsi))
## grouped_df [7 x 12] (S3: grouped_df/tbl_df/tbl/data.frame)
##  $ Provinsi: chr [1:7] "DKI Jakarta" "Jawa" "Jawa Barat" "Jawa Tengah" ...
##  $ 2011    : num [1:7] 101604 83511 20782 19975 7538 ...
##  $ 2012    : num [1:7] 136467 111363 28895 28493 9486 ...
##  $ 2013    : num [1:7] 149241 98969 23067 29529 9708 ...
##  $ 2014    : num [1:7] 152276 147069 40857 39110 13171 ...
##  $ 2015    : num [1:7] 163750 171568 47063 46840 14080 ...
##  $ 2016    : num [1:7] 170614 190568 49405 53659 13013 ...
##  $ 2017    : num [1:7] 181553 228905 53825 62761 16810 ...
##  $ 2018    : num [1:7] 187820 253125 61358 69368 20357 ...
##  $ 2019    : num [1:7] 197818 271957 61692 72363 21353 ...
##  $ 2020    : num [1:7] 163779 251363 57235 72342 16619 ...
##  $ 2021    : num [1:7] 94033 143340 34763 44455 9652 ...
##  - attr(*, "groups")= tibble [7 x 2] (S3: tbl_df/tbl/data.frame)
##   ..$ Provinsi: chr [1:7] "Banten" "DKI Jakarta" "Jawa" "Jawa Barat" ...
##   ..$ .rows   : list<int> [1:7] 
##   .. ..$ : int 7
##   .. ..$ : int 1
##   .. ..$ : int 2
##   .. ..$ : int 3
##   .. ..$ : int 4
##   .. ..$ : int 6
##   .. ..$ : int 5
##   .. ..@ ptype: int(0) 
##   ..- attr(*, ".drop")= logi TRUE

Pengelompokan dan Pengurutan Data

Pengelompokan Data

jawakel <- dplyroutflow1 %>%
    group_by(Provinsi)
jawakel
## # A tibble: 7 x 12
## # Groups:   Provinsi [7]
##   Provinsi `2011` `2012` `2013` `2014` `2015` `2016` `2017` `2018` `2019` `2020`
##   <chr>     <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
## 1 DKI Jak~ 1.02e5 1.36e5 1.49e5 1.52e5 1.64e5 1.71e5 1.82e5 1.88e5 1.98e5 1.64e5
## 2 Jawa     8.35e4 1.11e5 9.90e4 1.47e5 1.72e5 1.91e5 2.29e5 2.53e5 2.72e5 2.51e5
## 3 Jawa Ba~ 2.08e4 2.89e4 2.31e4 4.09e4 4.71e4 4.94e4 5.38e4 6.14e4 6.17e4 5.72e4
## 4 Jawa Te~ 2.00e4 2.85e4 2.95e4 3.91e4 4.68e4 5.37e4 6.28e4 6.94e4 7.24e4 7.23e4
## 5 Yogyaka~ 7.54e3 9.49e3 9.71e3 1.32e4 1.41e4 1.30e4 1.68e4 2.04e4 2.14e4 1.66e4
## 6 Jawa Ti~ 3.52e4 4.45e4 3.67e4 5.39e4 6.36e4 7.45e4 9.34e4 9.80e4 1.06e5 9.34e4
## 7 Banten   0      0      0      0      0      0      2.11e3 4.05e3 1.10e4 1.18e4
## # ... with 1 more variable: 2021 <dbl>

Pengurutan Data

jawaubah <- arrange(dplyroutflow1, `2012`)
jawaubah
## # A tibble: 7 x 12
##   Provinsi `2011` `2012` `2013` `2014` `2015` `2016` `2017` `2018` `2019` `2020`
##   <chr>     <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
## 1 Banten   0      0      0      0      0      0      2.11e3 4.05e3 1.10e4 1.18e4
## 2 Yogyaka~ 7.54e3 9.49e3 9.71e3 1.32e4 1.41e4 1.30e4 1.68e4 2.04e4 2.14e4 1.66e4
## 3 Jawa Te~ 2.00e4 2.85e4 2.95e4 3.91e4 4.68e4 5.37e4 6.28e4 6.94e4 7.24e4 7.23e4
## 4 Jawa Ba~ 2.08e4 2.89e4 2.31e4 4.09e4 4.71e4 4.94e4 5.38e4 6.14e4 6.17e4 5.72e4
## 5 Jawa Ti~ 3.52e4 4.45e4 3.67e4 5.39e4 6.36e4 7.45e4 9.34e4 9.80e4 1.06e5 9.34e4
## 6 Jawa     8.35e4 1.11e5 9.90e4 1.47e5 1.72e5 1.91e5 2.29e5 2.53e5 2.72e5 2.51e5
## 7 DKI Jak~ 1.02e5 1.36e5 1.49e5 1.52e5 1.64e5 1.71e5 1.82e5 1.88e5 1.98e5 1.64e5
## # ... with 1 more variable: 2021 <dbl>

Menambahkan Kolon pada Tabel

jawakel2 <- dplyroutflow1 %>%
    mutate(`2021` = dplyroutflow1$`2020`/2)
jawakel2
## # A tibble: 7 x 12
##   Provinsi `2011` `2012` `2013` `2014` `2015` `2016` `2017` `2018` `2019` `2020`
##   <chr>     <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
## 1 DKI Jak~ 1.02e5 1.36e5 1.49e5 1.52e5 1.64e5 1.71e5 1.82e5 1.88e5 1.98e5 1.64e5
## 2 Jawa     8.35e4 1.11e5 9.90e4 1.47e5 1.72e5 1.91e5 2.29e5 2.53e5 2.72e5 2.51e5
## 3 Jawa Ba~ 2.08e4 2.89e4 2.31e4 4.09e4 4.71e4 4.94e4 5.38e4 6.14e4 6.17e4 5.72e4
## 4 Jawa Te~ 2.00e4 2.85e4 2.95e4 3.91e4 4.68e4 5.37e4 6.28e4 6.94e4 7.24e4 7.23e4
## 5 Yogyaka~ 7.54e3 9.49e3 9.71e3 1.32e4 1.41e4 1.30e4 1.68e4 2.04e4 2.14e4 1.66e4
## 6 Jawa Ti~ 3.52e4 4.45e4 3.67e4 5.39e4 6.36e4 7.45e4 9.34e4 9.80e4 1.06e5 9.34e4
## 7 Banten   0      0      0      0      0      0      2.11e3 4.05e3 1.10e4 1.18e4
## # ... with 1 more variable: 2021 <dbl>

Visualisasi Data Tabel dengan ggplot

ggplot dengan Grafik Titik

ggplot(data = dplyroutflow1, mapping = aes(x = Provinsi, y = `2011`)) +
  geom_point()

ggplot(data = dplyroutflow1, mapping = aes(x = Provinsi, y = `2011`)) +
  geom_point()

Refrensi

1.https://rpubs.com/suhartono-uinmaliki/868598

2.https://www.bi.go.id/id/statistik/ekonomi-keuangan/ssp/indikator-pengedaran-uang.aspx