Jurusan: Teknik Informatika
Lembaga: Universitas Islam Negeri Maulana Malik Ibrahim Malang
Dalam melakukan manipulasi data di R dapat menggunakan package
dplyr. Package ini berfungsi untuk memudahkan manipulasi
data seperti mengambil sampel secara acak dari tabel, mengurutkan data,
menyaring data, atau bisa juga untuk mengelompokkan data.
Package dplyr ini digunakan ketika melakukan manipulasi
data dengan pemrosesan yang cepat sehingga meminimalisir waktu, kodenya
juga simpel sehingga mudah dimengerti, dan penggunaan fungsi yang
sistematis sehingga kode lebih rapi. Cara menginstall package
dplyr yaitu dengan :
install.package(dplyr)
Dan sintaks untuk memanggil dplyr yaitu dengan :
library(dplyr)
library(readxl)
## Warning: package 'readxl' was built under R version 4.1.2
outflowgo <- read_excel(path = "C:/Users/Daffa/Downloads/kuliah/Semester 2/Linear Algebra/Menjelang UAS/Manipulasiinflow-outflow/OutflowGomapu.xlsx")
outflowgo
## # 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 Gomapu 2794. 3593. 4235. 3229 3808. 3796. 3939. 4480. 4386 4833.
## 2 Goronta~ 0 0 0 0 0 0 0 927. 1951. 2382.
## 3 Maluku ~ 1631. 1677. 8578. 1809. 2397. 2246. 2752. 2678. 2984. 2943.
## 4 Maluku 2352. 2690. 4795. 2861. 3123. 3309. 3671. 3424. 4071. 3724.
## 5 Papua 9986. 13600. 7801. 11305. 11623. 11500. 10650. 12369. 9605. 12028.
## 6 Papua B~ 0 0 0 170. 1899. 1924. 2621. 3001. 3319. 3086.
## # ... 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.1.3 v stringr 1.4.0
## v readr 2.0.1 v forcats 0.5.1
## Warning: package 'dplyr' was built under R version 4.1.2
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
go1 <- select(outflowgo, `2019`)
go1
## # A tibble: 6 x 1
## `2019`
## <dbl>
## 1 4386
## 2 1951.
## 3 2984.
## 4 4071.
## 5 9605.
## 6 3319.
sul2 <- select(outflowgo, `2015`, `2017`, `2019`, `2020`, `2021`)
sul2
## # A tibble: 6 x 5
## `2015` `2017` `2019` `2020` `2021`
## <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 3808. 3939. 4386 4833. 2278.
## 2 0 0 1951. 2382. 1494.
## 3 2397. 2752. 2984. 2943. 1823.
## 4 3123. 3671. 4071. 3724. 1806.
## 5 11623. 10650. 9605. 12028. 5409.
## 6 1899. 2621. 3319. 3086. 857.
Sintaks dibawah ini digunakan untuk memilih beberapa variabel yang ketika variabel yang dipilih itu lebih banyak dibandingkan variabel yang akan dibuang.
go3 <- select(outflowgo, -`2014`)
go3
## # A tibble: 6 x 11
## Provinsi `2011` `2012` `2013` `2015` `2016` `2017` `2018` `2019` `2020` `2021`
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Gomapu 2794. 3593. 4235. 3808. 3796. 3939. 4480. 4386 4833. 2278.
## 2 Goronta~ 0 0 0 0 0 0 927. 1951. 2382. 1494.
## 3 Maluku ~ 1631. 1677. 8578. 2397. 2246. 2752. 2678. 2984. 2943. 1823.
## 4 Maluku 2352. 2690. 4795. 3123. 3309. 3671. 3424. 4071. 3724. 1806.
## 5 Papua 9986. 13600. 7801. 11623. 11500. 10650. 12369. 9605. 12028. 5409.
## 6 Papua B~ 0 0 0 1899. 1924. 2621. 3001. 3319. 3086. 857.
Sintaksnya ini menggunakan fungsi select, dan select ini bukan hanya untuk memilih kolom dalam jumlah banyak, melainkan juga bisa untuk mengganti nama kolomnya. Perhatikan sintaks yang ada dibawah ini :
go4 <- outflowgo %>%
select(tahun = `2014`, `2020`, `2021`)
go4
## # A tibble: 6 x 3
## tahun `2020` `2021`
## <dbl> <dbl> <dbl>
## 1 3229 4833. 2278.
## 2 0 2382. 1494.
## 3 1809. 2943. 1823.
## 4 2861. 3724. 1806.
## 5 11305. 12028. 5409.
## 6 170. 3086. 857.
library(dplyr)
gotahun <- outflowgo %>% rename('2010' = '2011')
head(gotahun)
## # 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 Gomapu 2794. 3593. 4235. 3229 3808. 3796. 3939. 4480. 4386 4833.
## 2 Goronta~ 0 0 0 0 0 0 0 927. 1951. 2382.
## 3 Maluku ~ 1631. 1677. 8578. 1809. 2397. 2246. 2752. 2678. 2984. 2943.
## 4 Maluku 2352. 2690. 4795. 2861. 3123. 3309. 3671. 3424. 4071. 3724.
## 5 Papua 9986. 13600. 7801. 11305. 11623. 11500. 10650. 12369. 9605. 12028.
## 6 Papua B~ 0 0 0 170. 1899. 1924. 2621. 3001. 3319. 3086.
## # ... with 1 more variable: 2021 <dbl>
go4 <- distinct(outflowgo, `2021`)
go4
## # A tibble: 6 x 1
## `2021`
## <dbl>
## 1 2278.
## 2 1494.
## 3 1823.
## 4 1806.
## 5 5409.
## 6 857.
go5 <- distinct(outflowgo, `2017`, .keep_all = TRUE)
go5
## # 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 Gomapu 2794. 3593. 4235. 3229 3808. 3796. 3939. 4480. 4386 4833.
## 2 Goronta~ 0 0 0 0 0 0 0 927. 1951. 2382.
## 3 Maluku ~ 1631. 1677. 8578. 1809. 2397. 2246. 2752. 2678. 2984. 2943.
## 4 Maluku 2352. 2690. 4795. 2861. 3123. 3309. 3671. 3424. 4071. 3724.
## 5 Papua 9986. 13600. 7801. 11305. 11623. 11500. 10650. 12369. 9605. 12028.
## 6 Papua B~ 0 0 0 170. 1899. 1924. 2621. 3001. 3319. 3086.
## # ... with 1 more variable: 2021 <dbl>
Baris tabel diseleksi dengan menggunakan fungsi
filter(). dalam fungsi ini terdapat berbagai operator,
seperti <, <=, >,
>, ==, dan %in%. Argumen dari
fungsi ini juga bisa lebih dari satu, dan sintaksnya menggunakan
operator boolean.
go6 <- outflowgo %>%
filter(Provinsi <= 'Gomapu') %>%
select(`2019`,`2020`)
go6
## # A tibble: 1 x 2
## `2019` `2020`
## <dbl> <dbl>
## 1 4386 4833.
go7 <- outflowgo %>%
filter(Provinsi == 'Gomapu', Provinsi == 'Maluku Utara') %>%
select( -`2016`)
go7
## # A tibble: 0 x 11
## # ... with 11 variables: Provinsi <chr>, 2011 <dbl>, 2012 <dbl>, 2013 <dbl>,
## # 2014 <dbl>, 2015 <dbl>, 2017 <dbl>, 2018 <dbl>, 2019 <dbl>, 2020 <dbl>,
## # 2021 <dbl>
str(outflowgo)
## tibble [6 x 12] (S3: tbl_df/tbl/data.frame)
## $ Provinsi: chr [1:6] "Gomapu" "Gorontalo" "Maluku Utara" "Maluku" ...
## $ 2011 : num [1:6] 2794 0 1631 2352 9986 ...
## $ 2012 : num [1:6] 3593 0 1677 2690 13600 ...
## $ 2013 : num [1:6] 4235 0 8578 4795 7801 ...
## $ 2014 : num [1:6] 3229 0 1809 2861 11305 ...
## $ 2015 : num [1:6] 3808 0 2397 3123 11623 ...
## $ 2016 : num [1:6] 3796 0 2246 3309 11500 ...
## $ 2017 : num [1:6] 3939 0 2752 3671 10650 ...
## $ 2018 : num [1:6] 4480 927 2678 3424 12369 ...
## $ 2019 : num [1:6] 4386 1951 2984 4071 9605 ...
## $ 2020 : num [1:6] 4833 2382 2943 3724 12028 ...
## $ 2021 : num [1:6] 2278 1494 1823 1806 5409 ...
str(outflowgo %>% group_by(Provinsi))
## grouped_df [6 x 12] (S3: grouped_df/tbl_df/tbl/data.frame)
## $ Provinsi: chr [1:6] "Gomapu" "Gorontalo" "Maluku Utara" "Maluku" ...
## $ 2011 : num [1:6] 2794 0 1631 2352 9986 ...
## $ 2012 : num [1:6] 3593 0 1677 2690 13600 ...
## $ 2013 : num [1:6] 4235 0 8578 4795 7801 ...
## $ 2014 : num [1:6] 3229 0 1809 2861 11305 ...
## $ 2015 : num [1:6] 3808 0 2397 3123 11623 ...
## $ 2016 : num [1:6] 3796 0 2246 3309 11500 ...
## $ 2017 : num [1:6] 3939 0 2752 3671 10650 ...
## $ 2018 : num [1:6] 4480 927 2678 3424 12369 ...
## $ 2019 : num [1:6] 4386 1951 2984 4071 9605 ...
## $ 2020 : num [1:6] 4833 2382 2943 3724 12028 ...
## $ 2021 : num [1:6] 2278 1494 1823 1806 5409 ...
## - attr(*, "groups")= tibble [6 x 2] (S3: tbl_df/tbl/data.frame)
## ..$ Provinsi: chr [1:6] "Gomapu" "Gorontalo" "Maluku" "Maluku Utara" ...
## ..$ .rows : list<int> [1:6]
## .. ..$ : int 1
## .. ..$ : int 2
## .. ..$ : int 4
## .. ..$ : int 3
## .. ..$ : int 5
## .. ..$ : int 6
## .. ..@ ptype: int(0)
## ..- attr(*, ".drop")= logi TRUE
goup <- outflowgo %>%
group_by(Provinsi)
goup
## # 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 Gomapu 2794. 3593. 4235. 3229 3808. 3796. 3939. 4480. 4386 4833.
## 2 Goronta~ 0 0 0 0 0 0 0 927. 1951. 2382.
## 3 Maluku ~ 1631. 1677. 8578. 1809. 2397. 2246. 2752. 2678. 2984. 2943.
## 4 Maluku 2352. 2690. 4795. 2861. 3123. 3309. 3671. 3424. 4071. 3724.
## 5 Papua 9986. 13600. 7801. 11305. 11623. 11500. 10650. 12369. 9605. 12028.
## 6 Papua B~ 0 0 0 170. 1899. 1924. 2621. 3001. 3319. 3086.
## # ... with 1 more variable: 2021 <dbl>
goubah <- arrange(outflowgo, `2019`)
goubah
## # 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 Goronta~ 0 0 0 0 0 0 0 927. 1951. 2382.
## 2 Maluku ~ 1631. 1677. 8578. 1809. 2397. 2246. 2752. 2678. 2984. 2943.
## 3 Papua B~ 0 0 0 170. 1899. 1924. 2621. 3001. 3319. 3086.
## 4 Maluku 2352. 2690. 4795. 2861. 3123. 3309. 3671. 3424. 4071. 3724.
## 5 Gomapu 2794. 3593. 4235. 3229 3808. 3796. 3939. 4480. 4386 4833.
## 6 Papua 9986. 13600. 7801. 11305. 11623. 11500. 10650. 12369. 9605. 12028.
## # ... with 1 more variable: 2021 <dbl>
goup1 <- outflowgo %>%
mutate(`2022` = outflowgo$`2021`/2)
goup1
## # A tibble: 6 x 13
## Provinsi `2011` `2012` `2013` `2014` `2015` `2016` `2017` `2018` `2019` `2020`
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Gomapu 2794. 3593. 4235. 3229 3808. 3796. 3939. 4480. 4386 4833.
## 2 Goronta~ 0 0 0 0 0 0 0 927. 1951. 2382.
## 3 Maluku ~ 1631. 1677. 8578. 1809. 2397. 2246. 2752. 2678. 2984. 2943.
## 4 Maluku 2352. 2690. 4795. 2861. 3123. 3309. 3671. 3424. 4071. 3724.
## 5 Papua 9986. 13600. 7801. 11305. 11623. 11500. 10650. 12369. 9605. 12028.
## 6 Papua B~ 0 0 0 170. 1899. 1924. 2621. 3001. 3319. 3086.
## # ... with 2 more variables: 2021 <dbl>, 2022 <dbl>
ggplot(data = outflowgo, mapping = aes(x = Provinsi, y = `2016`)) +
geom_point()
ggplot(data = outflowgo, mapping = aes(x = Provinsi, y = `2017`)) +
geom_point()
ggplot(data = outflowgo, mapping = aes(x = Provinsi, y = `2016`)) +
geom_bar(stat = "identity")
ggplot(data = outflowgo, mapping = aes(x = Provinsi, y = `2017`)) +
geom_bar(stat = "identity")