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

Chia tách tập dữ liệu

Trong một bài tập trước, bạn đã xác định rằng số lượt retweet trung bình trên mỗi tweet là 3.3. Ở bài này, chúng ta sẽ xem có bao nhiêu tweet cao hơn mức trung bình này và bao nhiêu thấp hơn.

Để làm được điều đó, trước tiên chúng ta sẽ tạo một mapper kiểm tra xem .x có lớn hơn 3.3 hay không. Sau đó, chúng ta sẽ điền sẵn map_at(), với .at"retweet_count", và .f lần lượt là mapper vừa tạo, rồi đến phần phủ định của mapper này.

Lưu ý rằng kể từ khi khóa học được tạo, hành vi của purrr đã thay đổi, và để tránh xung đột đối số giữa .f trong partial().f trong map_at(), bạn phải dùng toán tử gán bán trích dẫn := (đôi khi được gọi là "toán tử walrus"). Trong phạm vi bài tập này, bạn chỉ cần biết rằng := hoạt động giống =, nhưng giúp partial() biết rằng đối số nên được truyền cho map_at() thay vì được giữ lại cho chính nó.

Khi đã tạo xong các công cụ này, chúng ta sẽ áp dụng chúng lên đối tượng non_rt, là phần trích xuất các "original tweets" từ bộ dữ liệu rstudioconf.

purrr đã được nạp sẵn cho bạ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 mean_above, một mapper kiểm tra xem .x có lớn hơn 3.3 hay không.

  • Điền sẵn hai phiên bản của map_at(): một với "retweet_count" & mean_above, và một với "retweet_count" & phần phủ định của mean_above.

  • Map hai hàm đã điền sẵn này lên non_rt, và chỉ giữ lại các phần tử "retweet_count".

  • Lấy kích thước của hai kết quả.

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 mean_above, a mapper that tests if .x is over 3.3
mean_above <- ___(~ ___)

# Prefil map_at() with "retweet_count", mean_above for above, 
# and mean_above negation for below
above <- partial(___, .at = "retweet_count", .f := ___ )
below <- partial(___, .at = "retweet_count", .f := ___ )

# Map above() and below() on non_rt, keep the "retweet_count"
ab <- ___(non_rt, ___) %>% ___("retweet_count")
bl <- ___(non_rt, ___) %>% ___("retweet_count")

# Compare the size of both elements
___(ab)
___(bl)
Chỉnh sửa và Chạy Mã