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.
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>
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.
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>
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>
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>
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>
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
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>
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>
ggplot(data = Jawa, mapping = aes(x = Provinsi, y = `2021`)) +
geom_bar(stat="identity")+
geom_col(fill="blue")