Bắt đầu ngayBắt đầu miễn phí

Dọn sạch dữ liệu với keep

Từ đầu khóa học đến giờ, chúng ta dùng kết quả của một thử nghiệm A/B kéo dài một tuần.

Chúng tôi đã đưa các kết quả này vào một list tên là all_visits. List này chứa visit_a, visit_bvisit_c. Các vector này chưa có tên. Mỗi vector có bảy số, tương ứng với bảy ngày trong tuần.

Câu hỏi đầu tiên: ngày nào có số lượt truy cập trung bình hơn 100 mỗi giờ? Chúng ta sẽ dùng hàm keep(). Nhưng nếu vector không có tên thì kết quả sẽ khó đọc: bạn có số liệu, nhưng không biết con số nào ứng với ngày nào.

Tin tốt là bạn có thể dùng hàm set_names() để giải quyết. Đây là những gì ta sẽ làm trong chương này: đầu tiên dùng keep() trên các vector chưa có tên, sau đó dùng trên các vector đã được đặt tên.

Bài tập này là một phần của khóa học

Lập trình hàm nâng cao với purrr

Xem khóa học

Hướng dẫn bài tập

  • Tạo một mapper kiểm tra xem .x có lớn hơn 100 không. Bạn sẽ dùng nó hai lần.
  • Kết hợp mapper này với keep() và áp dụng (map) nó lên list chưa có tên all_visit. Vì kết quả không có tên, bạn sẽ không biết mình đã giữ ngày nào.
  • Đặt tên cho từng vector bằng cách kết hợp map()set_names(), dùng vector tên mà chúng tôi đã cung cấp.
  • Map mapper vừa tạo lên list mới đã có tên. Như bạn thấy, giờ đã dễ đọc hơn nhiều!

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.

# Create a mapper that test if .x is more than 100 
is_more_than_hundred <- ___(~ .x > 100)

# Use this mapper with keep() on the all_visits object 
map(all_visits, ~ ___(.x, is_more_than_hundred))

# Use the  day vector to set names to all_list
day <- c("mon", "tue", "wed", "thu", "fri", "sat", "sun")
full_visits_named <- map(all_visits, ~ ___(.x, ___))

# Use this mapper with keep() 
map(full_visits_named, ~ ___(.x, ___))
Chỉnh sửa và Chạy Mã