Penjelasan

Manipulasi data juga merupakan langkah penting dalam mengolah data. Manipulasi data bertujuan untuk mengorganisir data dan membuat data lebih rapi sehingga memudahkan proses analisis selanjutnya. Bahasa R menyediakan banyak package yang memudahkan eksplorasi dan manipulasi data, salah satunya yaitu Tidyverse.

Memasukkan Data Inflow ke Variable

library(readxl)
Jawa <- read_excel(path = "C:/COba/Jawa_In.xlsx")
Jawa
## # 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~ 6.30e4 7.67e4 8.45e4 9.21e4 1.00e5 1.16e5 1.12e5 1.26e5 1.43e5 1.11e5
## 2 Jawa     1.24e5 1.60e5 1.35e5 2.17e5 2.30e5 2.62e5 2.78e5 3.07e5 3.25e5 2.59e5
## 3 Jawa Ba~ 4.38e4 6.06e4 3.52e4 7.87e4 8.13e4 8.80e4 8.32e4 8.72e4 9.48e4 7.69e4
## 4 Jawa Te~ 3.51e4 4.33e4 4.22e4 6.05e4 6.52e4 7.28e4 7.70e4 8.78e4 9.08e4 8.50e4
## 5 Yogyaka~ 6.49e3 9.17e3 8.94e3 1.39e4 1.48e4 1.74e4 1.75e4 2.06e4 2.09e4 7.35e3
## 6 Jawa Ti~ 3.85e4 4.74e4 4.87e4 6.43e4 6.88e4 8.34e4 9.84e4 1.06e5 1.14e5 8.68e4
## 7 Banten   0      0      0      0      0      0      1.49e3 4.83e3 4.48e3 3.40e3
## # ... with 1 more variable: `2021` <dbl>

Menggunakan fungsi select untuk menyeleksi berdasar tabel

Fungsi select biasanya digunakana untuk seleksi. Hasil seleksi tersebut dapat digunakan ubaik data yang ingin digunakan maupun data yang tidak digunakan bisa juga untuk mengganti beberapa data berdasar tabel.

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.7
## v tidyr   1.2.0     v stringr 1.4.0
## v readr   2.1.2     v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
jawa2019 <- select(Jawa, '2019')
jawa2019
## # A tibble: 7 x 1
##    `2019`
##     <dbl>
## 1 142940.
## 2 324624.
## 3  94846.
## 4  90751.
## 5  20899.
## 6 113651.
## 7   4477.
library(tidyverse)
jawaskip2015 <- select(Jawa, -'2015')
jawaskip2015
## # A tibble: 7 x 11
##   Provinsi `2011` `2012` `2013` `2014` `2016` `2017` `2018` `2019` `2020` `2021`
##   <chr>     <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
## 1 DKI Jak~ 6.30e4 7.67e4 8.45e4 9.21e4 1.16e5 1.12e5 1.26e5 1.43e5 1.11e5 8.55e4
## 2 Jawa     1.24e5 1.60e5 1.35e5 2.17e5 2.62e5 2.78e5 3.07e5 3.25e5 2.59e5 1.88e5
## 3 Jawa Ba~ 4.38e4 6.06e4 3.52e4 7.87e4 8.80e4 8.32e4 8.72e4 9.48e4 7.69e4 5.73e4
## 4 Jawa Te~ 3.51e4 4.33e4 4.22e4 6.05e4 7.28e4 7.70e4 8.78e4 9.08e4 8.50e4 6.20e4
## 5 Yogyaka~ 6.49e3 9.17e3 8.94e3 1.39e4 1.74e4 1.75e4 2.06e4 2.09e4 7.35e3 6.71e3
## 6 Jawa Ti~ 3.85e4 4.74e4 4.87e4 6.43e4 8.34e4 9.84e4 1.06e5 1.14e5 8.68e4 5.90e4
## 7 Banten   0      0      0      0      0      1.49e3 4.83e3 4.48e3 3.40e3 2.80e3
Jawa2021 <- Jawa %>% select('2021')
Jawa2021
## # A tibble: 7 x 1
##    `2021`
##     <dbl>
## 1  85530.
## 2 187816.
## 3  57295.
## 4  62024.
## 5   6714.
## 6  58986.
## 7   2798.

Mengganti nama tabel

library(dplyr)
Jawagantinamatahun <- Jawa %>% rename('2010' = '2011')
head(Jawagantinamatahun)
## # 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~ 6.30e4 7.67e4 8.45e4 9.21e4 1.00e5 1.16e5 1.12e5 1.26e5 1.43e5 1.11e5
## 2 Jawa     1.24e5 1.60e5 1.35e5 2.17e5 2.30e5 2.62e5 2.78e5 3.07e5 3.25e5 2.59e5
## 3 Jawa Ba~ 4.38e4 6.06e4 3.52e4 7.87e4 8.13e4 8.80e4 8.32e4 8.72e4 9.48e4 7.69e4
## 4 Jawa Te~ 3.51e4 4.33e4 4.22e4 6.05e4 6.52e4 7.28e4 7.70e4 8.78e4 9.08e4 8.50e4
## 5 Yogyaka~ 6.49e3 9.17e3 8.94e3 1.39e4 1.48e4 1.74e4 1.75e4 2.06e4 2.09e4 7.35e3
## 6 Jawa Ti~ 3.85e4 4.74e4 4.87e4 6.43e4 6.88e4 8.34e4 9.84e4 1.06e5 1.14e5 8.68e4
## # ... with 1 more variable: `2021` <dbl>

Menggambil Nilai yang tidak Duplikasi dari Variabel yang ada

Jawa1 <- distinct(Jawa, `2018`)
Jawa1
## # A tibble: 7 x 1
##    `2018`
##     <dbl>
## 1 126459.
## 2 306911.
## 3  87243.
## 4  87829.
## 5  20574.
## 6 106433.
## 7   4832.
Jawa1 <- distinct(Jawa, `2018`,.keep_all = TRUE)
Jawa1
## # 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~ 6.30e4 7.67e4 8.45e4 9.21e4 1.00e5 1.16e5 1.12e5 1.26e5 1.43e5 1.11e5
## 2 Jawa     1.24e5 1.60e5 1.35e5 2.17e5 2.30e5 2.62e5 2.78e5 3.07e5 3.25e5 2.59e5
## 3 Jawa Ba~ 4.38e4 6.06e4 3.52e4 7.87e4 8.13e4 8.80e4 8.32e4 8.72e4 9.48e4 7.69e4
## 4 Jawa Te~ 3.51e4 4.33e4 4.22e4 6.05e4 6.52e4 7.28e4 7.70e4 8.78e4 9.08e4 8.50e4
## 5 Yogyaka~ 6.49e3 9.17e3 8.94e3 1.39e4 1.48e4 1.74e4 1.75e4 2.06e4 2.09e4 7.35e3
## 6 Jawa Ti~ 3.85e4 4.74e4 4.87e4 6.43e4 6.88e4 8.34e4 9.84e4 1.06e5 1.14e5 8.68e4
## 7 Banten   0      0      0      0      0      0      1.49e3 4.83e3 4.48e3 3.40e3
## # ... with 1 more variable: `2021` <dbl>

Memfilter beberapa data dalam tabel

jawatimur <- Jawa %>%
    filter(Provinsi == 'Jawa Timur') %>%
    select('2020','2021')
jawatimur
## # A tibble: 1 x 2
##   `2020` `2021`
##    <dbl>  <dbl>
## 1 86848. 58986.
jawap1 <- Jawa %>%
  filter(Provinsi == 'Jawa Barat',Provinsi == 'Jawa Timur') %>%
  select('2020','2021')
jawap1
## # A tibble: 0 x 2
## # ... with 2 variables: 2020 <dbl>, 2021 <dbl>

Pengelompokan Data

str(Jawa)
## 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] 62958 123917 43775 35137 6490 ...
##  $ 2012    : num [1:7] 76665 160482 60629 43298 9173 ...
##  $ 2013    : num [1:7] 84526 134998 35190 42182 8939 ...
##  $ 2014    : num [1:7] 92106 217303 78660 60476 13890 ...
##  $ 2015    : num [1:7] 100426 230141 81303 65198 14831 ...
##  $ 2016    : num [1:7] 115684 261607 88036 72782 17350 ...
##  $ 2017    : num [1:7] 112213 277609 83220 77031 17483 ...
##  $ 2018    : num [1:7] 126459 306911 87243 87829 20574 ...
##  $ 2019    : num [1:7] 142940 324624 94846 90751 20899 ...
##  $ 2020    : num [1:7] 110549 259444 76883 84970 7348 ...
##  $ 2021    : num [1:7] 85530 187816 57295 62024 6714 ...
str(Jawa %>% 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] 62958 123917 43775 35137 6490 ...
##  $ 2012    : num [1:7] 76665 160482 60629 43298 9173 ...
##  $ 2013    : num [1:7] 84526 134998 35190 42182 8939 ...
##  $ 2014    : num [1:7] 92106 217303 78660 60476 13890 ...
##  $ 2015    : num [1:7] 100426 230141 81303 65198 14831 ...
##  $ 2016    : num [1:7] 115684 261607 88036 72782 17350 ...
##  $ 2017    : num [1:7] 112213 277609 83220 77031 17483 ...
##  $ 2018    : num [1:7] 126459 306911 87243 87829 20574 ...
##  $ 2019    : num [1:7] 142940 324624 94846 90751 20899 ...
##  $ 2020    : num [1:7] 110549 259444 76883 84970 7348 ...
##  $ 2021    : num [1:7] 85530 187816 57295 62024 6714 ...
##  - 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
jawab4 <- Jawa %>%
    group_by(Provinsi)
jawab4
## # 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~ 6.30e4 7.67e4 8.45e4 9.21e4 1.00e5 1.16e5 1.12e5 1.26e5 1.43e5 1.11e5
## 2 Jawa     1.24e5 1.60e5 1.35e5 2.17e5 2.30e5 2.62e5 2.78e5 3.07e5 3.25e5 2.59e5
## 3 Jawa Ba~ 4.38e4 6.06e4 3.52e4 7.87e4 8.13e4 8.80e4 8.32e4 8.72e4 9.48e4 7.69e4
## 4 Jawa Te~ 3.51e4 4.33e4 4.22e4 6.05e4 6.52e4 7.28e4 7.70e4 8.78e4 9.08e4 8.50e4
## 5 Yogyaka~ 6.49e3 9.17e3 8.94e3 1.39e4 1.48e4 1.74e4 1.75e4 2.06e4 2.09e4 7.35e3
## 6 Jawa Ti~ 3.85e4 4.74e4 4.87e4 6.43e4 6.88e4 8.34e4 9.84e4 1.06e5 1.14e5 8.68e4
## 7 Banten   0      0      0      0      0      0      1.49e3 4.83e3 4.48e3 3.40e3
## # ... with 1 more variable: `2021` <dbl>

Perhitungan Data

Jawa %>%
    filter(Provinsi == 'Yogyakarta') %>%
    count('2020', sort = TRUE)
## # A tibble: 1 x 2
##   `"2020"`     n
##   <chr>    <int>
## 1 2020         1
Jawa %>%
    filter(Provinsi == 'Yogyakarta') %>%
    count('2020', sort = TRUE)
## # A tibble: 1 x 2
##   `"2020"`     n
##   <chr>    <int>
## 1 2020         1

Pengurutan Data

Jawa2 <- arrange(Jawa, `2012`)
Jawa2
## # 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      1.49e3 4.83e3 4.48e3 3.40e3
## 2 Yogyaka~ 6.49e3 9.17e3 8.94e3 1.39e4 1.48e4 1.74e4 1.75e4 2.06e4 2.09e4 7.35e3
## 3 Jawa Te~ 3.51e4 4.33e4 4.22e4 6.05e4 6.52e4 7.28e4 7.70e4 8.78e4 9.08e4 8.50e4
## 4 Jawa Ti~ 3.85e4 4.74e4 4.87e4 6.43e4 6.88e4 8.34e4 9.84e4 1.06e5 1.14e5 8.68e4
## 5 Jawa Ba~ 4.38e4 6.06e4 3.52e4 7.87e4 8.13e4 8.80e4 8.32e4 8.72e4 9.48e4 7.69e4
## 6 DKI Jak~ 6.30e4 7.67e4 8.45e4 9.21e4 1.00e5 1.16e5 1.12e5 1.26e5 1.43e5 1.11e5
## 7 Jawa     1.24e5 1.60e5 1.35e5 2.17e5 2.30e5 2.62e5 2.78e5 3.07e5 3.25e5 2.59e5
## # ... with 1 more variable: `2021` <dbl>

Pertukaran Data

jawap3 <- Jawa %>%
    mutate('2020' = Jawa$'2021'/2)
jawap3
## # 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~ 6.30e4 7.67e4 8.45e4 9.21e4 1.00e5 1.16e5 1.12e5 1.26e5 1.43e5 42765.
## 2 Jawa     1.24e5 1.60e5 1.35e5 2.17e5 2.30e5 2.62e5 2.78e5 3.07e5 3.25e5 93908.
## 3 Jawa Ba~ 4.38e4 6.06e4 3.52e4 7.87e4 8.13e4 8.80e4 8.32e4 8.72e4 9.48e4 28647.
## 4 Jawa Te~ 3.51e4 4.33e4 4.22e4 6.05e4 6.52e4 7.28e4 7.70e4 8.78e4 9.08e4 31012.
## 5 Yogyaka~ 6.49e3 9.17e3 8.94e3 1.39e4 1.48e4 1.74e4 1.75e4 2.06e4 2.09e4  3357.
## 6 Jawa Ti~ 3.85e4 4.74e4 4.87e4 6.43e4 6.88e4 8.34e4 9.84e4 1.06e5 1.14e5 29493.
## 7 Banten   0      0      0      0      0      0      1.49e3 4.83e3 4.48e3  1399.
## # ... with 1 more variable: `2021` <dbl>

Visualisasi Data dengan ggplot

ggplot(data = Jawa, mapping = aes(x = Provinsi, y = `2021`)) +
  geom_bar(stat="identity")+
  geom_col(fill="blue")

Referensi

https://www.dqlab.id/belajar-bahasa-r-untuk-pemula-tidyverse-package-untuk-eksplorasi-dan-manipulasi-data https://rpubs.com/arnabila1410_/876622