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)
library(dplyr)
women
##    height weight
## 1      58    115
## 2      59    117
## 3      60    120
## 4      61    123
## 5      62    126
## 6      63    129
## 7      64    132
## 8      65    135
## 9      66    139
## 10     67    142
## 11     68    146
## 12     69    150
## 13     70    154
## 14     71    159
## 15     72    164

Summarize

women %>% summarise(
    mean_height = mean(height),
    mean_weight = mean(weight)
)
##   mean_height mean_weight
## 1          65    136.7333

Arrange

women %>% arrange(desc(height))
##    height weight
## 1      72    164
## 2      71    159
## 3      70    154
## 4      69    150
## 5      68    146
## 6      67    142
## 7      66    139
## 8      65    135
## 9      64    132
## 10     63    129
## 11     62    126
## 12     61    123
## 13     60    120
## 14     59    117
## 15     58    115
women %>% arrange(desc(weight))
##    height weight
## 1      72    164
## 2      71    159
## 3      70    154
## 4      69    150
## 5      68    146
## 6      67    142
## 7      66    139
## 8      65    135
## 9      64    132
## 10     63    129
## 11     62    126
## 12     61    123
## 13     60    120
## 14     59    117
## 15     58    115

Filter

filtered_data <- women %>% filter(weight > 132)
print(filtered_data)
##   height weight
## 1     65    135
## 2     66    139
## 3     67    142
## 4     68    146
## 5     69    150
## 6     70    154
## 7     71    159
## 8     72    164
filtered_data <- women %>% filter(height > 65)
print(filtered_data)
##   height weight
## 1     66    139
## 2     67    142
## 3     68    146
## 4     69    150
## 5     70    154
## 6     71    159
## 7     72    164

Mutate

Konversi ke Kilogram

Konversi ke Meter

Mencari BMI

mutated_data <- women %>%
  mutate(
    weight_kg = weight * 0.453592,     
    height_m = height * 0.0254,       
    BMI = weight_kg / (height_m^2)
  )
print(mutated_data)
##    height weight weight_kg height_m      BMI
## 1      58    115  52.16308   1.4732 24.03476
## 2      59    117  53.07026   1.4986 23.63087
## 3      60    120  54.43104   1.5240 23.43563
## 4      61    123  55.79182   1.5494 23.24039
## 5      62    126  57.15259   1.5748 23.04545
## 6      63    129  58.51337   1.6002 22.85107
## 7      64    132  59.87414   1.6256 22.65750
## 8      65    135  61.23492   1.6510 22.46493
## 9      66    139  63.04929   1.6764 22.43494
## 10     67    142  64.41006   1.7018 22.24010
## 11     68    146  66.22443   1.7272 22.19898
## 12     69    150  68.03880   1.7526 22.15088
## 13     70    154  69.85317   1.7780 22.09645
## 14     71    159  72.12113   1.8034 22.17575
## 15     72    164  74.38909   1.8288 22.24215

Select

selected_data <- mutated_data %>% select(height, BMI)
print(selected_data)
##    height      BMI
## 1      58 24.03476
## 2      59 23.63087
## 3      60 23.43563
## 4      61 23.24039
## 5      62 23.04545
## 6      63 22.85107
## 7      64 22.65750
## 8      65 22.46493
## 9      66 22.43494
## 10     67 22.24010
## 11     68 22.19898
## 12     69 22.15088
## 13     70 22.09645
## 14     71 22.17575
## 15     72 22.24215

Gabungan 2 Fungsi

Fungsi Mutate dan Select

result <- women %>%
  mutate(weight_kg = weight * 0.453592) %>% 
  select(height, weight_kg)                  
print(result)
##    height weight_kg
## 1      58  52.16308
## 2      59  53.07026
## 3      60  54.43104
## 4      61  55.79182
## 5      62  57.15259
## 6      63  58.51337
## 7      64  59.87414
## 8      65  61.23492
## 9      66  63.04929
## 10     67  64.41006
## 11     68  66.22443
## 12     69  68.03880
## 13     70  69.85317
## 14     71  72.12113
## 15     72  74.38909

Fungsi Filter dan Mutate

result <- women %>%
  filter(weight > 130) %>%            
  mutate(
    weight_kg = weight * 0.453592,     
    height_m = height * 0.0254,      
    BMI = weight_kg / (height_m^2) 
  )
print(result)
##   height weight weight_kg height_m      BMI
## 1     64    132  59.87414   1.6256 22.65750
## 2     65    135  61.23492   1.6510 22.46493
## 3     66    139  63.04929   1.6764 22.43494
## 4     67    142  64.41006   1.7018 22.24010
## 5     68    146  66.22443   1.7272 22.19898
## 6     69    150  68.03880   1.7526 22.15088
## 7     70    154  69.85317   1.7780 22.09645
## 8     71    159  72.12113   1.8034 22.17575
## 9     72    164  74.38909   1.8288 22.24215