# Install library yang akan digunakan terlebih dahulu
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.2
## Warning: package 'lubridate' was built under R version 4.3.2
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.3     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.4.4     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.0
## ✔ 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(Loblolly)
view(Loblolly)
Loblolly = tibble::as.tibble(Loblolly) 
## Warning: `as.tibble()` was deprecated in tibble 2.0.0.
## ℹ Please use `as_tibble()` instead.
## ℹ The signature and semantics have changed, see `?as_tibble`.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
class(Loblolly)
## [1] "tbl_df"     "tbl"        "data.frame"
head(Loblolly)
## # A tibble: 6 × 3
##   height   age Seed 
##    <dbl> <dbl> <ord>
## 1   4.51     3 301  
## 2  10.9      5 301  
## 3  28.7     10 301  
## 4  41.7     15 301  
## 5  52.7     20 301  
## 6  60.9     25 301
glimpse(Loblolly)
## Rows: 84
## Columns: 3
## $ height <dbl> 4.51, 10.89, 28.72, 41.74, 52.70, 60.92, 4.55, 10.92, 29.07, 42…
## $ age    <dbl> 3, 5, 10, 15, 20, 25, 3, 5, 10, 15, 20, 25, 3, 5, 10, 15, 20, 2…
## $ Seed   <ord> 301, 301, 301, 301, 301, 301, 303, 303, 303, 303, 303, 303, 305…
# Menghitung mean, median, dan standar deviasi dari variabel height secara keseluruhan dengan menggunakan fungsi summarize

Loblolly %>% summarize(meanHeight=mean(height), medianHeight=median(height), sdHeight=sd(height))
## # A tibble: 1 × 3
##   meanHeight medianHeight sdHeight
##        <dbl>        <dbl>    <dbl>
## 1       32.4           34     20.7
# Mengurutkan data berdasarkan age dengan menggunakan fungsi arrange

## Ascending (default)
Loblolly %>% arrange(age)
## # A tibble: 84 × 3
##    height   age Seed 
##     <dbl> <dbl> <ord>
##  1   4.51     3 301  
##  2   4.55     3 303  
##  3   4.79     3 305  
##  4   3.91     3 307  
##  5   4.81     3 309  
##  6   3.88     3 311  
##  7   4.32     3 315  
##  8   4.57     3 319  
##  9   3.77     3 321  
## 10   4.33     3 323  
## # ℹ 74 more rows
## Descending 
Loblolly %>% arrange(desc(age))
## # A tibble: 84 × 3
##    height   age Seed 
##     <dbl> <dbl> <ord>
##  1   60.9    25 301  
##  2   63.4    25 303  
##  3   64.1    25 305  
##  4   59.1    25 307  
##  5   63.0    25 309  
##  6   59.6    25 311  
##  7   60.1    25 315  
##  8   60.7    25 319  
##  9   60.3    25 321  
## 10   61.6    25 323  
## # ℹ 74 more rows
# Menampilkan data dengan age 20 menggunakan fungsi filter
Loblolly %>% filter(age == 20)
## # A tibble: 14 × 3
##    height   age Seed 
##     <dbl> <dbl> <ord>
##  1   52.7    20 301  
##  2   53.9    20 303  
##  3   55.8    20 305  
##  4   50.8    20 307  
##  5   53.3    20 309  
##  6   51.5    20 311  
##  7   51.3    20 315  
##  8   52.4    20 319  
##  9   49.8    20 321  
## 10   53.2    20 323  
## 11   50.1    20 325  
## 12   48.4    20 327  
## 13   48.3    20 329  
## 14   49.1    20 331
# Memilih atau mengeliminasi variabel tertentu dalam data untuk ditampilkan menggunakan fungsi select

## Memilih variabel height dan Seed agar ditampilkan
Loblolly %>% select(height, Seed)
## # A tibble: 84 × 2
##    height Seed 
##     <dbl> <ord>
##  1   4.51 301  
##  2  10.9  301  
##  3  28.7  301  
##  4  41.7  301  
##  5  52.7  301  
##  6  60.9  301  
##  7   4.55 303  
##  8  10.9  303  
##  9  29.1  303  
## 10  42.8  303  
## # ℹ 74 more rows
## Mengeliminasi variabel height agar tidak ditampilkan
Loblolly %>% select(-height)
## # A tibble: 84 × 2
##      age Seed 
##    <dbl> <ord>
##  1     3 301  
##  2     5 301  
##  3    10 301  
##  4    15 301  
##  5    20 301  
##  6    25 301  
##  7     3 303  
##  8     5 303  
##  9    10 303  
## 10    15 303  
## # ℹ 74 more rows
# Membuat variabel baru yaitu usia dalam satuan bulan menggunakan fungsi mutate
Loblolly %>% mutate('age(months)' = age*12)
## # A tibble: 84 × 4
##    height   age Seed  `age(months)`
##     <dbl> <dbl> <ord>         <dbl>
##  1   4.51     3 301              36
##  2  10.9      5 301              60
##  3  28.7     10 301             120
##  4  41.7     15 301             180
##  5  52.7     20 301             240
##  6  60.9     25 301             300
##  7   4.55     3 303              36
##  8  10.9      5 303              60
##  9  29.1     10 303             120
## 10  42.8     15 303             180
## # ℹ 74 more rows
# Menampilkan variabel height dan seed dengan nilai height lebih besar dari 10 yang kemudian diurutkan dari nilai terbesar ke terkecil menggunakan fungsi select, filter, dan arrange
Loblolly %>% select(height, Seed) %>% filter(height > 10) %>% arrange(desc(height))
## # A tibble: 64 × 2
##    height Seed 
##     <dbl> <ord>
##  1   64.1 305  
##  2   63.4 303  
##  3   63.0 309  
##  4   61.6 323  
##  5   60.9 301  
##  6   60.7 319  
##  7   60.3 321  
##  8   60.1 315  
##  9   59.6 311  
## 10   59.5 331  
## # ℹ 54 more rows
# Menampilkan variabel age yang nilainya lebih besar atau sama dengan 10 dan kemudian membuat variabel baru berisi nilai height dalam satuan meter menggunakan fungsi filter dan mutate
Loblolly %>% filter(age >= 10) %>% mutate('height(meter)' = height*0.3048)
## # A tibble: 56 × 4
##    height   age Seed  `height(meter)`
##     <dbl> <dbl> <ord>           <dbl>
##  1   28.7    10 301              8.75
##  2   41.7    15 301             12.7 
##  3   52.7    20 301             16.1 
##  4   60.9    25 301             18.6 
##  5   29.1    10 303              8.86
##  6   42.8    15 303             13.1 
##  7   53.9    20 303             16.4 
##  8   63.4    25 303             19.3 
##  9   30.2    10 305              9.21
## 10   44.4    15 305             13.5 
## # ℹ 46 more rows
# Menampilkan variabel age dan mengurutkannya dari nilai terkecil ke nilai terbesar kemudian membuat variabel baru berisi age dalam satuan bulan dan age dalam satuan hari menggunakan fungsi select, arrange, dan mutate
Loblolly %>% select(age) %>% arrange(age) %>% mutate('age(months)' = age*12, 'age(days)' = age*365)
## # A tibble: 84 × 3
##      age `age(months)` `age(days)`
##    <dbl>         <dbl>       <dbl>
##  1     3            36        1095
##  2     3            36        1095
##  3     3            36        1095
##  4     3            36        1095
##  5     3            36        1095
##  6     3            36        1095
##  7     3            36        1095
##  8     3            36        1095
##  9     3            36        1095
## 10     3            36        1095
## # ℹ 74 more rows