Chi tiêu y tế với clusterMap()
Tại một hội nghị y tế gần đây, có ý kiến cho rằng tổng chi tiêu cho y tế đang tăng trên toàn cầu.
Bạn có mặt tại đó và muốn ước tính sơ bộ để kiểm chứng nhận định này. Bạn đã tìm được một bộ dữ liệu cung cấp chi tiêu y tế bình quân đầu người và dân số từ năm 2000 trở đi. Bạn có hai danh sách: ls_pop và ls_exp. Chúng lần lượt chứa quy mô dân số và chi tiêu y tế bình quân đầu người cho mỗi quốc gia.
Hàm total_exp() nhận hai đối số: pop (dân số) và exp_pc (chi tiêu y tế bình quân đầu người). Hàm này trả về tổng chi tiêu tính bằng tỷ USD. Bạn muốn áp dụng hàm này cho ls_pop và ls_exp theo kiểu song song. Gói parallel đã được nạp.
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
- Áp dụng
total_exp()theo kiểu song song cho từng phần tử củals_popvàls_exp. - Chỉ định danh sách có các phần tử sẽ được truyền vào đối số
popcủatotal_exp(). - Tương tự, chỉ định danh sách sẽ được truyền vào đối số
exp_pccủatotal_exp().
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.
total_exp <- function (pop, exp_pc) {
sum(pop * exp_pc)/1e9
}
cl <- makeCluster(4)
# Apply total_exp using cl to multiple arguments
ls_total <- ___(___, ___,
# Specify first argument
pop = ___,
# Specify second argument
exp_pc = ___)
stopCluster(cl)
print(paste("Average yearly increase in USD billions:", round(mean(diff(unlist(ls_total))))))