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

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

Xem khóa học

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

  • Nạp dplyr trên mỗi lõi trong cụm cl.
  • Xuất biến n_unis sang cụm cl.
  • Áp dụng filter_df() cho từng phần tử của uni_list bằng parLapply().
  • Truyền số trường cần chọn, n_unis, vào đúng tham số của filter_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)
Chỉnh sửa và Chạy Mã