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
# Tạo một tibble từ vector và danh sách
my_tibble <- tibble(
  name = c("Alice", "Bob", "Charlie"),
  age = c(25, 30, 28),
  city = c("New York", "Los Angeles", "Chicago")
)

print(my_tibble)
## # A tibble: 3 × 3
##   name      age city       
##   <chr>   <dbl> <chr>      
## 1 Alice      25 New York   
## 2 Bob        30 Los Angeles
## 3 Charlie    28 Chicago
# Chuyển đổi từ data frame sang tibble
df <- data.frame(
  name = c("Alice", "Bob", "Charlie"),
  age = c(25, 30, 28),
  city = c("New York", "Los Angeles", "Chicago")
)

converted_tibble <- as_tibble(df)

print(converted_tibble)
## # A tibble: 3 × 3
##   name      age city       
##   <chr>   <dbl> <chr>      
## 1 Alice      25 New York   
## 2 Bob        30 Los Angeles
## 3 Charlie    28 Chicago
# Chọn cột name và age
selected_columns <- my_tibble %>%
  select(name, age)

# Chọn dòng thứ 2
selected_row <- my_tibble %>%
  slice(2)

print(selected_columns)
## # A tibble: 3 × 2
##   name      age
##   <chr>   <dbl>
## 1 Alice      25
## 2 Bob        30
## 3 Charlie    28
print(selected_row)
## # A tibble: 1 × 3
##   name    age city       
##   <chr> <dbl> <chr>      
## 1 Bob      30 Los Angeles
# Thêm cột mới
new_tibble <- my_tibble %>%
  mutate(profession = c("Engineer", "Designer", "Analyst"))

print(new_tibble)
## # A tibble: 3 × 4
##   name      age city        profession
##   <chr>   <dbl> <chr>       <chr>     
## 1 Alice      25 New York    Engineer  
## 2 Bob        30 Los Angeles Designer  
## 3 Charlie    28 Chicago     Analyst
# Lọc dữ liệu theo điều kiện
filtered_tibble <- my_tibble %>%
  filter(age > 25)

print(filtered_tibble)
## # A tibble: 2 × 3
##   name      age city       
##   <chr>   <dbl> <chr>      
## 1 Bob        30 Los Angeles
## 2 Charlie    28 Chicago
# Sắp xếp dữ liệu theo cột age
sorted_tibble <- my_tibble %>%
  arrange(age)

print(sorted_tibble)
## # A tibble: 3 × 3
##   name      age city       
##   <chr>   <dbl> <chr>      
## 1 Alice      25 New York   
## 2 Charlie    28 Chicago    
## 3 Bob        30 Los Angeles