library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.2 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ ggplot2 3.4.3 ✔ tibble 3.2.1
## ✔ lubridate 1.9.2 ✔ 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(magrittr)
##
## Attaching package: 'magrittr'
##
## The following object is masked from 'package:purrr':
##
## set_names
##
## The following object is masked from 'package:tidyr':
##
## extract
# Tạo một vectơ và thực hiện các phép biến đổi liên tiếp
vect <- c(1, 2, 3, 4, 5)
result <- vect %>%
sqrt() %>%
log() %>%
round(2)
print(result)
## [1] 0.00 0.35 0.55 0.69 0.80
library(magrittr)
# Tạo một vectơ và thực hiện biến đổi trực tiếp lên nó
vect <- c(1, 2, 3, 4, 5)
vect %<>%
sqrt() %>%
log() %>%
round(2)
print(vect)
## [1] 0.00 0.35 0.55 0.69 0.80
# Tạo một vectơ và thực hiện biến đổi, hiển thị kết quả trước và sau
vect <- c(1, 2, 3, 4, 5)
vect %T>%
{
print("Before transformation:")
print(.)
. <- sqrt(.) %>% log() %>% round(2)
print("After transformation:")
print(.)
}
## [1] "Before transformation:"
## [1] 1 2 3 4 5
## [1] "After transformation:"
## [1] 0.00 0.35 0.55 0.69 0.80
## [1] 0.00 0.35 0.55 0.69 0.80
# Tạo một danh sách
data_list <- list(name = "Alice", age = 25)
# Truy xuất giá trị từ danh sách
name <- data_list %>% extract2("name")
age <- data_list %>% extract2("age")
print(name)
## [1] "Alice"
print(age)
## [1] 25
# Tạo một tập dữ liệu
data_frame <- data.frame(x = c(1, 2, 3), y = c(4, 5, 6))
# Sử dụng with() để thực hiện phép biến đổi
result <- with(data_frame, x + y)
print(result)
## [1] 5 7 9
# Sử dụng cơ sở dữ liệu iris và thực hiện các phép biến đổi liên tiếp
iris_result <- iris %>%
filter(Species == "setosa") %>%
select(Sepal.Length, Sepal.Width)
print(head(iris_result))
## Sepal.Length Sepal.Width
## 1 5.1 3.5
## 2 4.9 3.0
## 3 4.7 3.2
## 4 4.6 3.1
## 5 5.0 3.6
## 6 5.4 3.9
# Sử dụng cơ sở dữ liệu iris và thực hiện biến đổi trực tiếp lên đối tượng
iris %<>%
mutate(Sepal.Area = Sepal.Length * Sepal.Width)
print(head(iris))
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species Sepal.Area
## 1 5.1 3.5 1.4 0.2 setosa 17.85
## 2 4.9 3.0 1.4 0.2 setosa 14.70
## 3 4.7 3.2 1.3 0.2 setosa 15.04
## 4 4.6 3.1 1.5 0.2 setosa 14.26
## 5 5.0 3.6 1.4 0.2 setosa 18.00
## 6 5.4 3.9 1.7 0.4 setosa 21.06
# Sử dụng cơ sở dữ liệu iris và hiển thị giá trị trước và sau phép biến đổi
iris %>%
{
print("Before transformation:")
print(head(.))
. <- filter(., Species == "virginica")
print("After transformation:")
print(head(.))
}
## [1] "Before transformation:"
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species Sepal.Area
## 1 5.1 3.5 1.4 0.2 setosa 17.85
## 2 4.9 3.0 1.4 0.2 setosa 14.70
## 3 4.7 3.2 1.3 0.2 setosa 15.04
## 4 4.6 3.1 1.5 0.2 setosa 14.26
## 5 5.0 3.6 1.4 0.2 setosa 18.00
## 6 5.4 3.9 1.7 0.4 setosa 21.06
## [1] "After transformation:"
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species Sepal.Area
## 1 6.3 3.3 6.0 2.5 virginica 20.79
## 2 5.8 2.7 5.1 1.9 virginica 15.66
## 3 7.1 3.0 5.9 2.1 virginica 21.30
## 4 6.3 2.9 5.6 1.8 virginica 18.27
## 5 6.5 3.0 5.8 2.2 virginica 19.50
## 6 7.6 3.0 6.6 2.1 virginica 22.80