Cara Memanipulasi data dengan librari 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 Sulawesi, Papua, dan Maluku

library(readxl)
## Warning: package 'readxl' was built under R version 4.1.2
dplyrOutflow1 <- read_excel(path = "D:/Matkul Sem2/Linear Algebra/pivot Outflow Sulawesi.xlsx")
dplyrOutflow1
## # A tibble: 11 x 12
##    Provinsi       `2011` `2012` `2013` `2014` `2015` `2016` `2017` `2018` `2019`
##    <chr>           <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
##  1 Sulampua       36449. 43623. 64181. 48231. 53153. 53145. 56297. 60935. 60723.
##  2 Sulawesi Utara  6606.  6375. 22740.  7207.  7202.  7707.  8421.  7605.  7367.
##  3 Sulawesi Teng~  4017.  4458.  4544.  5696.  5310.  4962.  5226.  5578.  5531.
##  4 Sulawesi Sela~  8967. 11873. 11485. 15645. 16236. 15494. 15159. 16779. 18089.
##  5 Sulawesi Teng~  2889.  2950.  4239.  3537.  4716.  4488.  5293.  5224.  5056.
##  6 Sulawesi Barat     0      0      0      0    647.  1514.  2504.  3350.  2749.
##  7 Gorontalo          0      0      0      0      0      0      0    927.  1951.
##  8 Maluku Utara    1631.  1677.  8578.  1809.  2397.  2246.  2752.  2678.  2984.
##  9 Maluku          2352.  2690.  4795.  2861.  3123.  3309.  3671.  3424.  4071.
## 10 Papua           9986. 13600.  7801. 11305. 11623. 11500. 10650. 12369.  9605.
## 11 Papua Barat        0      0      0    170.  1899.  1924.  2621.  3001.  3319.
## # ... with 2 more variables: 2020 <dbl>, 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

Sulawesi2015 <- select(dplyrOutflow1, '2015')
Sulawesi2015
## # A tibble: 11 x 1
##    `2015`
##     <dbl>
##  1 53153.
##  2  7202.
##  3  5310.
##  4 16236.
##  5  4716.
##  6   647.
##  7     0 
##  8  2397.
##  9  3123.
## 10 11623.
## 11  1899.
Sulawesimin2 <- select(dplyrOutflow1, '2011', '2012', '2013', '2014', '2016', '2017', '2018', '2020', '2021')
Sulawesimin2
## # A tibble: 11 x 9
##    `2011` `2012` `2013` `2014` `2016` `2017` `2018` `2020` `2021`
##     <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
##  1 36449. 43623. 64181. 48231. 53145. 56297. 60935. 64828. 33806.
##  2  6606.  6375. 22740.  7207.  7707.  8421.  7605.  7437.  3050.
##  3  4017.  4458.  4544.  5696.  4962.  5226.  5578.  4674.  2763.
##  4  8967. 11873. 11485. 15645. 15494. 15159. 16779. 20503. 12017.
##  5  2889.  2950.  4239.  3537.  4488.  5293.  5224.  5129.  2507.
##  6     0      0      0      0   1514.  2504.  3350.  2921.  2079.
##  7     0      0      0      0      0      0    927.  2382.  1494.
##  8  1631.  1677.  8578.  1809.  2246.  2752.  2678.  2943.  1823.
##  9  2352.  2690.  4795.  2861.  3309.  3671.  3424.  3724.  1806.
## 10  9986. 13600.  7801. 11305. 11500. 10650. 12369. 12028.  5409.
## 11     0      0      0    170.  1924.  2621.  3001.  3086.   857.

Memilih Variebel yang akan digunakan

Sulawesimin2015 <- select(dplyrOutflow1, -'2019')
Sulawesimin2015
## # A tibble: 11 x 11
##    Provinsi       `2011` `2012` `2013` `2014` `2015` `2016` `2017` `2018` `2020`
##    <chr>           <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
##  1 Sulampua       36449. 43623. 64181. 48231. 53153. 53145. 56297. 60935. 64828.
##  2 Sulawesi Utara  6606.  6375. 22740.  7207.  7202.  7707.  8421.  7605.  7437.
##  3 Sulawesi Teng~  4017.  4458.  4544.  5696.  5310.  4962.  5226.  5578.  4674.
##  4 Sulawesi Sela~  8967. 11873. 11485. 15645. 16236. 15494. 15159. 16779. 20503.
##  5 Sulawesi Teng~  2889.  2950.  4239.  3537.  4716.  4488.  5293.  5224.  5129.
##  6 Sulawesi Barat     0      0      0      0    647.  1514.  2504.  3350.  2921.
##  7 Gorontalo          0      0      0      0      0      0      0    927.  2382.
##  8 Maluku Utara    1631.  1677.  8578.  1809.  2397.  2246.  2752.  2678.  2943.
##  9 Maluku          2352.  2690.  4795.  2861.  3123.  3309.  3671.  3424.  3724.
## 10 Papua           9986. 13600.  7801. 11305. 11623. 11500. 10650. 12369. 12028.
## 11 Papua Barat        0      0      0    170.  1899.  1924.  2621.  3001.  3086.
## # ... with 1 more variable: 2021 <dbl>

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 <- dplyrOutflow1 %>%
  select(tahun = `2017`, `2018`, `2019`)
Sulawesimin1
## # A tibble: 11 x 3
##     tahun `2018` `2019`
##     <dbl>  <dbl>  <dbl>
##  1 56297. 60935. 60723.
##  2  8421.  7605.  7367.
##  3  5226.  5578.  5531.
##  4 15159. 16779. 18089.
##  5  5293.  5224.  5056.
##  6  2504.  3350.  2749.
##  7     0    927.  1951.
##  8  2752.  2678.  2984.
##  9  3671.  3424.  4071.
## 10 10650. 12369.  9605.
## 11  2621.  3001.  3319.

Mengganti tabel pada tahun

library(dplyr)
Sulawesitahun2 <- dplyrOutflow1 %>% rename('2010' = '2011')
head(Sulawesitahun2)
## # 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 Sulampua 36449. 43623. 64181. 48231. 53153. 53145. 56297. 60935. 60723. 64828.
## 2 Sulawes~  6606.  6375. 22740.  7207.  7202.  7707.  8421.  7605.  7367.  7437.
## 3 Sulawes~  4017.  4458.  4544.  5696.  5310.  4962.  5226.  5578.  5531.  4674.
## 4 Sulawes~  8967. 11873. 11485. 15645. 16236. 15494. 15159. 16779. 18089. 20503.
## 5 Sulawes~  2889.  2950.  4239.  3537.  4716.  4488.  5293.  5224.  5056.  5129.
## 6 Sulawes~     0      0      0      0    647.  1514.  2504.  3350.  2749.  2921.
## # ... with 1 more variable: 2021 <dbl>

Menggambil Nilai yang tidak Duplikasi dari Variabel yang ada

Dari Sebuah Variabel

Sulawesi4 <- distinct(dplyrOutflow1, `2016`)
Sulawesi4
## # A tibble: 11 x 1
##    `2016`
##     <dbl>
##  1 53145.
##  2  7707.
##  3  4962.
##  4 15494.
##  5  4488.
##  6  1514.
##  7     0 
##  8  2246.
##  9  3309.
## 10 11500.
## 11  1924.

Dari Semua Variabel

Sulawesi5 <- distinct(dplyrOutflow1, `2016`, .keep_all = TRUE)
Sulawesi5
## # A tibble: 11 x 12
##    Provinsi       `2011` `2012` `2013` `2014` `2015` `2016` `2017` `2018` `2019`
##    <chr>           <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
##  1 Sulampua       36449. 43623. 64181. 48231. 53153. 53145. 56297. 60935. 60723.
##  2 Sulawesi Utara  6606.  6375. 22740.  7207.  7202.  7707.  8421.  7605.  7367.
##  3 Sulawesi Teng~  4017.  4458.  4544.  5696.  5310.  4962.  5226.  5578.  5531.
##  4 Sulawesi Sela~  8967. 11873. 11485. 15645. 16236. 15494. 15159. 16779. 18089.
##  5 Sulawesi Teng~  2889.  2950.  4239.  3537.  4716.  4488.  5293.  5224.  5056.
##  6 Sulawesi Barat     0      0      0      0    647.  1514.  2504.  3350.  2749.
##  7 Gorontalo          0      0      0      0      0      0      0    927.  1951.
##  8 Maluku Utara    1631.  1677.  8578.  1809.  2397.  2246.  2752.  2678.  2984.
##  9 Maluku          2352.  2690.  4795.  2861.  3123.  3309.  3671.  3424.  4071.
## 10 Papua           9986. 13600.  7801. 11305. 11623. 11500. 10650. 12369.  9605.
## 11 Papua Barat        0      0      0    170.  1899.  1924.  2621.  3001.  3319.
## # ... with 2 more variables: 2020 <dbl>, 2021 <dbl>

Menyeleksi Baris pada Tabel

Baris tabel diseleksi dengan menggunakan fungsi filter().

Sulawesi6 <- dplyrOutflow1 %>%
  filter(Provinsi <= 'Maluku Utara') %>%
    select(`2018`,`2019`)
Sulawesi6
## # A tibble: 3 x 2
##   `2018` `2019`
##    <dbl>  <dbl>
## 1   927.  1951.
## 2  2678.  2984.
## 3  3424.  4071.
Sulawesi7 <- dplyrOutflow1 %>%
  filter(Provinsi == 'Papua', Provinsi == 'Gorontalo') %>%
    select( -`2020`)
Sulawesi7
## # 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 [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(dplyrOutflow1 %>% 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

Pengelompokan dan Pengurutan Data

Pengelompokan Data

Sulawesikel <- dplyrOutflow1 %>%
    group_by(Provinsi)
Sulawesikel
## # A tibble: 11 x 12
## # Groups:   Provinsi [11]
##    Provinsi       `2011` `2012` `2013` `2014` `2015` `2016` `2017` `2018` `2019`
##    <chr>           <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
##  1 Sulampua       36449. 43623. 64181. 48231. 53153. 53145. 56297. 60935. 60723.
##  2 Sulawesi Utara  6606.  6375. 22740.  7207.  7202.  7707.  8421.  7605.  7367.
##  3 Sulawesi Teng~  4017.  4458.  4544.  5696.  5310.  4962.  5226.  5578.  5531.
##  4 Sulawesi Sela~  8967. 11873. 11485. 15645. 16236. 15494. 15159. 16779. 18089.
##  5 Sulawesi Teng~  2889.  2950.  4239.  3537.  4716.  4488.  5293.  5224.  5056.
##  6 Sulawesi Barat     0      0      0      0    647.  1514.  2504.  3350.  2749.
##  7 Gorontalo          0      0      0      0      0      0      0    927.  1951.
##  8 Maluku Utara    1631.  1677.  8578.  1809.  2397.  2246.  2752.  2678.  2984.
##  9 Maluku          2352.  2690.  4795.  2861.  3123.  3309.  3671.  3424.  4071.
## 10 Papua           9986. 13600.  7801. 11305. 11623. 11500. 10650. 12369.  9605.
## 11 Papua Barat        0      0      0    170.  1899.  1924.  2621.  3001.  3319.
## # ... with 2 more variables: 2020 <dbl>, 2021 <dbl>

Pengurutan Data

Sulawesiubah <- arrange(dplyrOutflow1, `2012`)
Sulawesiubah
## # A tibble: 11 x 12
##    Provinsi       `2011` `2012` `2013` `2014` `2015` `2016` `2017` `2018` `2019`
##    <chr>           <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
##  1 Sulawesi Barat     0      0      0      0    647.  1514.  2504.  3350.  2749.
##  2 Gorontalo          0      0      0      0      0      0      0    927.  1951.
##  3 Papua Barat        0      0      0    170.  1899.  1924.  2621.  3001.  3319.
##  4 Maluku Utara    1631.  1677.  8578.  1809.  2397.  2246.  2752.  2678.  2984.
##  5 Maluku          2352.  2690.  4795.  2861.  3123.  3309.  3671.  3424.  4071.
##  6 Sulawesi Teng~  2889.  2950.  4239.  3537.  4716.  4488.  5293.  5224.  5056.
##  7 Sulawesi Teng~  4017.  4458.  4544.  5696.  5310.  4962.  5226.  5578.  5531.
##  8 Sulawesi Utara  6606.  6375. 22740.  7207.  7202.  7707.  8421.  7605.  7367.
##  9 Sulawesi Sela~  8967. 11873. 11485. 15645. 16236. 15494. 15159. 16779. 18089.
## 10 Papua           9986. 13600.  7801. 11305. 11623. 11500. 10650. 12369.  9605.
## 11 Sulampua       36449. 43623. 64181. 48231. 53153. 53145. 56297. 60935. 60723.
## # ... with 2 more variables: 2020 <dbl>, 2021 <dbl>

Menambahkan Kolon pada Tabel

Sulawesikel2 <- dplyrOutflow1 %>%
    mutate(`2021` = dplyrOutflow1$`2020`/2)
Sulawesikel2
## # A tibble: 11 x 12
##    Provinsi       `2011` `2012` `2013` `2014` `2015` `2016` `2017` `2018` `2019`
##    <chr>           <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
##  1 Sulampua       36449. 43623. 64181. 48231. 53153. 53145. 56297. 60935. 60723.
##  2 Sulawesi Utara  6606.  6375. 22740.  7207.  7202.  7707.  8421.  7605.  7367.
##  3 Sulawesi Teng~  4017.  4458.  4544.  5696.  5310.  4962.  5226.  5578.  5531.
##  4 Sulawesi Sela~  8967. 11873. 11485. 15645. 16236. 15494. 15159. 16779. 18089.
##  5 Sulawesi Teng~  2889.  2950.  4239.  3537.  4716.  4488.  5293.  5224.  5056.
##  6 Sulawesi Barat     0      0      0      0    647.  1514.  2504.  3350.  2749.
##  7 Gorontalo          0      0      0      0      0      0      0    927.  1951.
##  8 Maluku Utara    1631.  1677.  8578.  1809.  2397.  2246.  2752.  2678.  2984.
##  9 Maluku          2352.  2690.  4795.  2861.  3123.  3309.  3671.  3424.  4071.
## 10 Papua           9986. 13600.  7801. 11305. 11623. 11500. 10650. 12369.  9605.
## 11 Papua Barat        0      0      0    170.  1899.  1924.  2621.  3001.  3319.
## # ... with 2 more variables: 2020 <dbl>, 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