##Inisiasi
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.4.2
## Warning: package 'ggplot2' was built under R version 4.4.2
## Warning: package 'tibble' was built under R version 4.4.2
## Warning: package 'tidyr' was built under R version 4.4.2
## Warning: package 'readr' was built under R version 4.4.2
## Warning: package 'purrr' was built under R version 4.4.2
## Warning: package 'dplyr' was built under R version 4.4.2
## Warning: package 'stringr' was built under R version 4.4.2
## Warning: package 'forcats' was built under R version 4.4.2
## Warning: package 'lubridate' was built under R version 4.4.2
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.1 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(datasets)
data(starwars)
starwars <- tibble::as_tibble(starwars)
library(dplyr)
class(starwars)
## [1] "tbl_df" "tbl" "data.frame"
head(starwars)
## # A tibble: 6 × 14
## name height mass hair_color skin_color eye_color birth_year sex gender
## <chr> <int> <dbl> <chr> <chr> <chr> <dbl> <chr> <chr>
## 1 Luke Sky… 172 77 blond fair blue 19 male mascu…
## 2 C-3PO 167 75 <NA> gold yellow 112 none mascu…
## 3 R2-D2 96 32 <NA> white, bl… red 33 none mascu…
## 4 Darth Va… 202 136 none white yellow 41.9 male mascu…
## 5 Leia Org… 150 49 brown light brown 19 fema… femin…
## 6 Owen Lars 178 120 brown, gr… light blue 52 male mascu…
## # ℹ 5 more variables: homeworld <chr>, species <chr>, films <list>,
## # vehicles <list>, starships <list>
##Penggunaan Fungsi
###Memilih Kolom Tertentu: Select()
starwars %>% select(name, height, mass)
## # A tibble: 87 × 3
## name height mass
## <chr> <int> <dbl>
## 1 Luke Skywalker 172 77
## 2 C-3PO 167 75
## 3 R2-D2 96 32
## 4 Darth Vader 202 136
## 5 Leia Organa 150 49
## 6 Owen Lars 178 120
## 7 Beru Whitesun Lars 165 75
## 8 R5-D4 97 32
## 9 Biggs Darklighter 183 84
## 10 Obi-Wan Kenobi 182 77
## # ℹ 77 more rows
###Menyaring berdasarkan kondisi tertentu: filter()
filtered_height <- filter(starwars, height > 170)
head(filtered_height)
## # A tibble: 6 × 14
## name height mass hair_color skin_color eye_color birth_year sex gender
## <chr> <int> <dbl> <chr> <chr> <chr> <dbl> <chr> <chr>
## 1 Luke Sky… 172 77 blond fair blue 19 male mascu…
## 2 Darth Va… 202 136 none white yellow 41.9 male mascu…
## 3 Owen Lars 178 120 brown, gr… light blue 52 male mascu…
## 4 Biggs Da… 183 84 black light brown 24 male mascu…
## 5 Obi-Wan … 182 77 auburn, w… fair blue-gray 57 male mascu…
## 6 Anakin S… 188 84 blond fair blue 41.9 male mascu…
## # ℹ 5 more variables: homeworld <chr>, species <chr>, films <list>,
## # vehicles <list>, starships <list>
###Membuat kolom baru: mutate()
starwars_bmi <- starwars %>% mutate(BMI = mass / (height / 100)^2)
starwars_bmi
## # A tibble: 87 × 15
## name height mass hair_color skin_color eye_color birth_year sex gender
## <chr> <int> <dbl> <chr> <chr> <chr> <dbl> <chr> <chr>
## 1 Luke Sk… 172 77 blond fair blue 19 male mascu…
## 2 C-3PO 167 75 <NA> gold yellow 112 none mascu…
## 3 R2-D2 96 32 <NA> white, bl… red 33 none mascu…
## 4 Darth V… 202 136 none white yellow 41.9 male mascu…
## 5 Leia Or… 150 49 brown light brown 19 fema… femin…
## 6 Owen La… 178 120 brown, gr… light blue 52 male mascu…
## 7 Beru Wh… 165 75 brown light blue 47 fema… femin…
## 8 R5-D4 97 32 <NA> white, red red NA none mascu…
## 9 Biggs D… 183 84 black light brown 24 male mascu…
## 10 Obi-Wan… 182 77 auburn, w… fair blue-gray 57 male mascu…
## # ℹ 77 more rows
## # ℹ 6 more variables: homeworld <chr>, species <chr>, films <list>,
## # vehicles <list>, starships <list>, BMI <dbl>
###Mengurutkan data: arrange()
starwars %>% arrange(desc(mass))
## # A tibble: 87 × 14
## name height mass hair_color skin_color eye_color birth_year sex gender
## <chr> <int> <dbl> <chr> <chr> <chr> <dbl> <chr> <chr>
## 1 Jabba D… 175 1358 <NA> green-tan… orange 600 herm… mascu…
## 2 Grievous 216 159 none brown, wh… green, y… NA male mascu…
## 3 IG-88 200 140 none metal red 15 none mascu…
## 4 Darth V… 202 136 none white yellow 41.9 male mascu…
## 5 Tarfful 234 136 brown brown blue NA male mascu…
## 6 Owen La… 178 120 brown, gr… light blue 52 male mascu…
## 7 Bossk 190 113 none green red 53 male mascu…
## 8 Chewbac… 228 112 brown unknown blue 200 male mascu…
## 9 Jek Ton… 180 110 brown fair blue NA <NA> <NA>
## 10 Dexter … 198 102 none brown yellow NA male mascu…
## # ℹ 77 more rows
## # ℹ 5 more variables: homeworld <chr>, species <chr>, films <list>,
## # vehicles <list>, starships <list>
###Meringkas data: sumarise()
summary_starwars <- starwars %>% summarise(avg_height = mean(height, na.rm = TRUE), avg_mass = mean(mass, na.rm = TRUE))
summary_starwars
## # A tibble: 1 × 2
## avg_height avg_mass
## <dbl> <dbl>
## 1 175. 97.3
##Penggunaan 2 Fungsi bersama
###filter() & summary()
human_summary <- starwars %>% filter(species == "Human") %>% summarise(avg_height = mean(height, na.rm = TRUE), count = n())
head(human_summary)
## # A tibble: 1 × 2
## avg_height count
## <dbl> <int>
## 1 178 35
###mutate() & arrange()
bmi_sorted <- starwars %>% mutate(starwars_bmi = mass / (height / 100)^2) %>% arrange(desc(starwars_bmi))
head(bmi_sorted)
## # A tibble: 6 × 15
## name height mass hair_color skin_color eye_color birth_year sex gender
## <chr> <int> <dbl> <chr> <chr> <chr> <dbl> <chr> <chr>
## 1 Jabba De… 175 1358 <NA> green-tan… orange 600 herm… mascu…
## 2 Dud Bolt 94 45 none blue, grey yellow NA male mascu…
## 3 Yoda 66 17 white green brown 896 male mascu…
## 4 Owen Lars 178 120 brown, gr… light blue 52 male mascu…
## 5 IG-88 200 140 none metal red 15 none mascu…
## 6 R2-D2 96 32 <NA> white, bl… red 33 none mascu…
## # ℹ 6 more variables: homeworld <chr>, species <chr>, films <list>,
## # vehicles <list>, starships <list>, starwars_bmi <dbl>