Витрати на охорону здоровʼя з clusterMap()
На нещодавній конференції з охорони здоровʼя пролунала теза, що сукупні витрати на охорону здоровʼя зростають у всьому світі.
Ви були присутні та хочете отримати приблизні оцінки, щоб перевірити це твердження. Ви знайшли набір даних із витратами на охорону здоровʼя на душу населення та чисельністю населення, починаючи з 2000 року. У вас є два списки: ls_pop і ls_exp. Вони містять, відповідно, чисельність населення та витрати на охорону здоровʼя на душу населення для кожної країни.
Маєте функцію total_exp(), яка приймає два аргументи: pop — чисельність населення, і exp_pc — витрати на охорону здоровʼя на душу населення. Ця функція повертає загальні витрати в мільярдах доларів США. Ви хочете застосувати цю функцію до ls_pop і ls_exp паралельно. Пакет parallel уже завантажено.
Ця вправа є частиною курсу
Паралельне програмування в R
Інструкції до вправи
- Застосуйте
total_exp()паралельно до кожного елементаls_popіls_exp. - Укажіть список, елементи якого буде передано до аргументу
popфункціїtotal_exp(). - Так само укажіть список, який буде передано до аргументу
exp_pcфункціїtotal_exp().
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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))))))