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

foreach với biến và package

Tốc độ một quần thể tăng lên được gọi là tốc độ tăng trưởng (growth rate), biểu diễn theo phần trăm. Hầu như mọi quốc gia đều đang chứng kiến mức giảm trong tốc độ tăng trưởng, nhưng một số giảm nhanh hơn những nước khác.

Bạn được tuyển làm Chuyên viên nhân khẩu học, và nhiệm vụ của bạn là tính tỷ lệ giữa tốc độ tăng dân số của một quốc gia so với tốc độ tăng dân số toàn cầu cho các năm từ 2017 đến 2021. Bạn được cung cấp một danh sách các data frame, ls_df, mỗi phần tử là một data frame như sau:

    country year growth_rate
Afghanistan 2017        2.52
...

Bạn cũng có một data frame về tăng trưởng toàn cầu, df_global:

year global_growth
2017          1.15
...

foreachdplyr đã được nạp sẵn cho bạn. Cụm (cluster) đã được tạo và đăng ký với backend của foreach.

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

  • Xuất df_global lên cluster trong lời gọi hàm foreach().
  • Chỉ định package dplyr cần cho phép tính.
  • Chỉ định rbind làm phương thức gộp (combine).
  • Sử dụng toán tử song song.

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.

df_comp <- foreach(df = ls_df,
                   # Export variable
                   ___,
                   # Specify any package needed
                   ___,
                   # Specify a combine method 
                   ___
                   # Use the parallel operator
                  ) ___ {
    df %>%
      left_join(df_global, "year") %>% 
      mutate(comp = growth_rate/global_growth)
}

stopCluster(cl)
Chỉnh sửa và Chạy Mã