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)
Kalimantan <- read_excel(path = "C:/COba/Kalimantan_Out.xlsx")
Kalimantan
## # A tibble: 6 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 Kaliman~ 29535. 33444. 44929. 38772. 41945. 42179. 50404. 53989. 57579. 52060.
## 2 Kaliman~ 5221. 5698. 6011. 6764. 8486. 9402. 11132. 12278. 13768. 13501.
## 3 Kaliman~ 6850. 7741. 15421. 8346. 10190. 10131. 11695. 13040. 12891. 12518.
## 4 Kaliman~ 5126. 5580. 5046. 6265. 6755. 7424. 9544. 8476. 9228. 8222.
## 5 Kaliman~ 12337. 14426. 18451. 17398. 16514. 15221. 16525. 17724. 18596. 14993.
## 6 Kaliman~ 0 0 0 0 0 0 1507. 2471. 3096. 2826.
## # ... 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()
k2019 <- select(Kalimantan, '2019')
k2019
## # A tibble: 6 x 1
## `2019`
## <dbl>
## 1 57579.
## 2 13768.
## 3 12891.
## 4 9228.
## 5 18596.
## 6 3096.
library(tidyverse)
skip2015 <- select(Kalimantan, -'2015')
skip2015
## # A tibble: 6 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 Kaliman~ 29535. 33444. 44929. 38772. 42179. 50404. 53989. 57579. 52060. 30291.
## 2 Kaliman~ 5221. 5698. 6011. 6764. 9402. 11132. 12278. 13768. 13501. 6958.
## 3 Kaliman~ 6850. 7741. 15421. 8346. 10131. 11695. 13040. 12891. 12518. 7071.
## 4 Kaliman~ 5126. 5580. 5046. 6265. 7424. 9544. 8476. 9228. 8222. 5192.
## 5 Kaliman~ 12337. 14426. 18451. 17398. 15221. 16525. 17724. 18596. 14993. 9110.
## 6 Kaliman~ 0 0 0 0 0 1507. 2471. 3096. 2826. 1960.
Kalimantan2021 <- Kalimantan %>% select('2021')
Kalimantan2021
## # A tibble: 6 x 1
## `2021`
## <dbl>
## 1 30291.
## 2 6958.
## 3 7071.
## 4 5192.
## 5 9110.
## 6 1960.
library(dplyr)
Kalimantangantinamatahun <- Kalimantan %>% rename('2010' = '2011')
head(Kalimantangantinamatahun)
## # 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 Kaliman~ 29535. 33444. 44929. 38772. 41945. 42179. 50404. 53989. 57579. 52060.
## 2 Kaliman~ 5221. 5698. 6011. 6764. 8486. 9402. 11132. 12278. 13768. 13501.
## 3 Kaliman~ 6850. 7741. 15421. 8346. 10190. 10131. 11695. 13040. 12891. 12518.
## 4 Kaliman~ 5126. 5580. 5046. 6265. 6755. 7424. 9544. 8476. 9228. 8222.
## 5 Kaliman~ 12337. 14426. 18451. 17398. 16514. 15221. 16525. 17724. 18596. 14993.
## 6 Kaliman~ 0 0 0 0 0 0 1507. 2471. 3096. 2826.
## # ... with 1 more variable: `2021` <dbl>
Kalimantan1 <- distinct(Kalimantan, `2018`)
Kalimantan1
## # A tibble: 6 x 1
## `2018`
## <dbl>
## 1 53989.
## 2 12278.
## 3 13040.
## 4 8476.
## 5 17724.
## 6 2471.
Kalimantan1 <- distinct(Kalimantan, `2018`,.keep_all = TRUE)
Kalimantan1
## # A tibble: 6 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 Kaliman~ 29535. 33444. 44929. 38772. 41945. 42179. 50404. 53989. 57579. 52060.
## 2 Kaliman~ 5221. 5698. 6011. 6764. 8486. 9402. 11132. 12278. 13768. 13501.
## 3 Kaliman~ 6850. 7741. 15421. 8346. 10190. 10131. 11695. 13040. 12891. 12518.
## 4 Kaliman~ 5126. 5580. 5046. 6265. 6755. 7424. 9544. 8476. 9228. 8222.
## 5 Kaliman~ 12337. 14426. 18451. 17398. 16514. 15221. 16525. 17724. 18596. 14993.
## 6 Kaliman~ 0 0 0 0 0 0 1507. 2471. 3096. 2826.
## # ... with 1 more variable: `2021` <dbl>
KalimantanBarat<- Kalimantan %>%
filter(Provinsi == 'Kalimantan Barat') %>%
select('2020','2021')
KalimantanBarat
## # A tibble: 1 x 2
## `2020` `2021`
## <dbl> <dbl>
## 1 13501. 6958.
Kalimantan1 <- Kalimantan %>%
filter(Provinsi == 'Kalimantan Timur') %>%
select('2020','2021')
Kalimantan1
## # A tibble: 1 x 2
## `2020` `2021`
## <dbl> <dbl>
## 1 14993. 9110.
str(Kalimantan)
## tibble [6 x 12] (S3: tbl_df/tbl/data.frame)
## $ Provinsi: chr [1:6] "Kalimantan" "Kalimantan Barat" "Kalimantan Tengah" "Kalimantan Selatan" ...
## $ 2011 : num [1:6] 29535 5221 6850 5126 12337 ...
## $ 2012 : num [1:6] 33444 5698 7741 5580 14426 ...
## $ 2013 : num [1:6] 44929 6011 15421 5046 18451 ...
## $ 2014 : num [1:6] 38772 6764 8346 6265 17398 ...
## $ 2015 : num [1:6] 41945 8486 10190 6755 16514 ...
## $ 2016 : num [1:6] 42179 9402 10131 7424 15221 ...
## $ 2017 : num [1:6] 50404 11132 11695 9544 16525 ...
## $ 2018 : num [1:6] 53989 12278 13040 8476 17724 ...
## $ 2019 : num [1:6] 57579 13768 12891 9228 18596 ...
## $ 2020 : num [1:6] 52060 13501 12518 8222 14993 ...
## $ 2021 : num [1:6] 30291 6958 7071 5192 9110 ...
str(Kalimantan %>% group_by(Provinsi))
## grouped_df [6 x 12] (S3: grouped_df/tbl_df/tbl/data.frame)
## $ Provinsi: chr [1:6] "Kalimantan" "Kalimantan Barat" "Kalimantan Tengah" "Kalimantan Selatan" ...
## $ 2011 : num [1:6] 29535 5221 6850 5126 12337 ...
## $ 2012 : num [1:6] 33444 5698 7741 5580 14426 ...
## $ 2013 : num [1:6] 44929 6011 15421 5046 18451 ...
## $ 2014 : num [1:6] 38772 6764 8346 6265 17398 ...
## $ 2015 : num [1:6] 41945 8486 10190 6755 16514 ...
## $ 2016 : num [1:6] 42179 9402 10131 7424 15221 ...
## $ 2017 : num [1:6] 50404 11132 11695 9544 16525 ...
## $ 2018 : num [1:6] 53989 12278 13040 8476 17724 ...
## $ 2019 : num [1:6] 57579 13768 12891 9228 18596 ...
## $ 2020 : num [1:6] 52060 13501 12518 8222 14993 ...
## $ 2021 : num [1:6] 30291 6958 7071 5192 9110 ...
## - attr(*, "groups")= tibble [6 x 2] (S3: tbl_df/tbl/data.frame)
## ..$ Provinsi: chr [1:6] "Kalimantan" "Kalimantan Barat" "Kalimantan Selatan" "Kalimantan Tengah" ...
## ..$ .rows : list<int> [1:6]
## .. ..$ : int 1
## .. ..$ : int 2
## .. ..$ : int 4
## .. ..$ : int 3
## .. ..$ : int 5
## .. ..$ : int 6
## .. ..@ ptype: int(0)
## ..- attr(*, ".drop")= logi TRUE
Kalimantan4 <- Kalimantan %>%
group_by(Provinsi)
Kalimantan4
## # A tibble: 6 x 12
## # Groups: Provinsi [6]
## Provinsi `2011` `2012` `2013` `2014` `2015` `2016` `2017` `2018` `2019` `2020`
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Kaliman~ 29535. 33444. 44929. 38772. 41945. 42179. 50404. 53989. 57579. 52060.
## 2 Kaliman~ 5221. 5698. 6011. 6764. 8486. 9402. 11132. 12278. 13768. 13501.
## 3 Kaliman~ 6850. 7741. 15421. 8346. 10190. 10131. 11695. 13040. 12891. 12518.
## 4 Kaliman~ 5126. 5580. 5046. 6265. 6755. 7424. 9544. 8476. 9228. 8222.
## 5 Kaliman~ 12337. 14426. 18451. 17398. 16514. 15221. 16525. 17724. 18596. 14993.
## 6 Kaliman~ 0 0 0 0 0 0 1507. 2471. 3096. 2826.
## # ... with 1 more variable: `2021` <dbl>
Kalimantan %>%
filter(Provinsi == 'Kalimantan Barat') %>%
count('2020', sort = TRUE)
## # A tibble: 1 x 2
## `"2020"` n
## <chr> <int>
## 1 2020 1
Kalimantan %>%
filter(Provinsi == 'Kalimantan Timur') %>%
count('2020', sort = TRUE)
## # A tibble: 1 x 2
## `"2020"` n
## <chr> <int>
## 1 2020 1
Kalimantan2 <- arrange(Kalimantan, `2012`)
Kalimantan2
## # A tibble: 6 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 Kaliman~ 0 0 0 0 0 0 1507. 2471. 3096. 2826.
## 2 Kaliman~ 5126. 5580. 5046. 6265. 6755. 7424. 9544. 8476. 9228. 8222.
## 3 Kaliman~ 5221. 5698. 6011. 6764. 8486. 9402. 11132. 12278. 13768. 13501.
## 4 Kaliman~ 6850. 7741. 15421. 8346. 10190. 10131. 11695. 13040. 12891. 12518.
## 5 Kaliman~ 12337. 14426. 18451. 17398. 16514. 15221. 16525. 17724. 18596. 14993.
## 6 Kaliman~ 29535. 33444. 44929. 38772. 41945. 42179. 50404. 53989. 57579. 52060.
## # ... with 1 more variable: `2021` <dbl>
Kalimantan3 <- Kalimantan %>%
mutate('2020' = Kalimantan$'2021'/2)
Kalimantan3
## # A tibble: 6 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 Kaliman~ 29535. 33444. 44929. 38772. 41945. 42179. 50404. 53989. 57579. 15145.
## 2 Kaliman~ 5221. 5698. 6011. 6764. 8486. 9402. 11132. 12278. 13768. 3479.
## 3 Kaliman~ 6850. 7741. 15421. 8346. 10190. 10131. 11695. 13040. 12891. 3535.
## 4 Kaliman~ 5126. 5580. 5046. 6265. 6755. 7424. 9544. 8476. 9228. 2596.
## 5 Kaliman~ 12337. 14426. 18451. 17398. 16514. 15221. 16525. 17724. 18596. 4555.
## 6 Kaliman~ 0 0 0 0 0 0 1507. 2471. 3096. 980.
## # ... with 1 more variable: `2021` <dbl>
ggplot(data = Kalimantan, mapping = aes(x = Provinsi, y = `2021`)) +
geom_point()