Các phép toán có thể gập (I)
Một phép toán cho ra cùng một kết quả dù bạn áp dụng trực tiếp lên toàn bộ dữ liệu, hay áp dụng lên từng khối (chunk) rồi kết hợp các kết quả từ các khối, đôi khi được gọi là foldable. Các phép max() và min() là ví dụ cho kiểu này.
Ở đây, chúng ta đã định nghĩa một phiên bản foldable của hàm range() có thể nhận vào một vector hoặc một list các vector.
Hãy kiểm tra rằng hàm này hoạt động đúng bằng cách thử trên bộ dữ liệu mortgage.
Bài tập này là một phần của khóa học
Xử lý dữ liệu có khả năng mở rộng trong R
Hướng dẫn bài tập
- Xác nhận rằng
foldable_range()hoạt động trên cột"record_number"của bộ dữ liệumort.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
foldable_range <- function(x) {
if (is.list(x)) {
# If x is a list then reduce it by the min and max of each element in the list
c(Reduce(min, x), Reduce(max, x))
} else {
# Otherwise, assume it's a vector and find its range
range(x)
}
}
# Verify that foldable_range() works on the record_number column
___