Giao diện
Module 1: Dplyr Core Verbs 🌪️
📝 Stats
- Số lượng: 10 câu hỏi
- Độ khó: Sơ cấp -> Trung cấp
- Mục tiêu: Sử dụng thành thạo Pipe
|>và các hàm biến đổi dữ liệu cơ bản.
MCQ
Q1. Hàm nào dùng để giữ lại các dòng (rows) thỏa mãn điều kiện?
- [ ]
select() - [ ]
filter() - [ ]
mutate() - [ ]
slice()
Đáp án:
filter(). (slice()cũng chọn dòng nhưng theo index, không phải điều kiện).
Q2. Lệnh df |> select(-id) có tác dụng gì?
- [ ] Chọn cột tên là
-id. - [ ] Chọn tất cả các cột TRỪ cột
id. - [ ] Xóa dòng có id âm.
- [ ] Lỗi cú pháp.
Đáp án: Chọn tất cả các cột TRỪ cột
id.
Q3. Hàm summarize() thường đi kèm với hàm nào để tính toán thống kê theo nhóm?
- [ ]
arrange() - [ ]
group_by() - [ ]
order_by() - [ ]
partition_by()
Đáp án:
group_by().
Q4. Kết quả của đoạn code sau là gì (về mặt columns)?
r
df |> mutate(new_col = 1)- [ ] Chỉ trả về 1 cột
new_col. - [ ] Trả về tất cả cột cũ + cột
new_col. - [ ] Trả về tất cả cột cũ, thay thế cột đầu tiên bằng
new_col. - [ ] Lỗi.
Đáp án: Trả về tất cả cột cũ + cột
new_col. (Nếu muốn chỉ lấy cột mới, dùngtransmute).
Coding Challenge
Challenge: Doanh thu theo tháng
Bạn có data frame sales với cột date (YYYY-MM-DD) và revenue (số tiền). Nhiệm vụ:
- Lọc lấy các giao dịch có
revenue> 0. - Tạo cột
monthtừdate(Gợi ý: dùnglubridate::month). - Tính tổng doanh thu theo từng tháng.
- Sắp xếp tháng có doanh thu cao nhất lên đầu.
r
library(dplyr)
library(lubridate)
# Giả lập data
sales <- tibble(
date = ymd(c("2024-01-01", "2024-01-15", "2024-02-01", "2024-02-20")),
revenue = c(100, -50, 200, 300)
)
# Code của bạn:
result <- sales |>
filter(revenue > 0) |>
mutate(month = month(date)) |>
group_by(month) |>
summarize(total_revenue = sum(revenue)) |>
arrange(desc(total_revenue))
print(result)