Lọc song song
Bạn đang làm tư vấn dữ liệu cho Liên Hợp Quốc, và họ muốn khảo sát sinh viên nghệ thuật trên toàn cầu. Họ đã thu thập một tập dữ liệu về các trường đại học có khoa nghệ thuật và nhân văn. Họ quyết định chọn các trường nghệ thuật hàng đầu ở mỗi quốc gia cho cuộc khảo sát.
uni_list là một danh sách các data frame, mỗi phần tử là dữ liệu của một quốc gia. Mỗi data frame có một cột total_score. Hàm sau có sẵn cho bạn:
filter_df <- function (df, select_n_unis) {
df %>%
top_n(select_n_unis, total_score)
}
Hàm này cần dplyr. Tham số select_n_unis xác định số trường đại học hàng đầu sẽ chọn. Bạn được yêu cầu lọc lấy năm trường hàng đầu từ mỗi tệp CSV theo kiểu song song. Gói parallel đã đượ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 song song trong R
Hướng dẫn bài tập
- Nạp
dplyrtrên mỗi lõi trong cụmcl. - Xuất biến
n_unissang cụmcl. - Áp dụng
filter_df()cho từng phần tử củauni_listbằngparLapply(). - Truyền số trường cần chọn,
n_unis, vào đúng tham số củafilter_df().
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.
cl <- makeCluster(4)
# Load dplyr in cluster
___
n_unis <- 5
# Export n_unis to cluster
___(___, ___, envir = environment())
# Apply filter_df() to each element of uni_list
ls_df <- parLapply(___, ___, ___,
# Supply number of universities to select
___ = ___)
stopCluster(cl)