Wydatki na ochronę zdrowia z clusterMap()
Na niedawnej konferencji dotyczącej ochrony zdrowia stwierdzono, że całkowite wydatki na zdrowie rosną na całym świecie.
Byłeś/byłaś na tej konferencji i chcesz uzyskać przybliżone szacunki, żeby sprawdzić to twierdzenie. Masz dostęp do zbioru danych zawierającego wydatki na ochronę zdrowia per capita oraz dane o liczbie ludności od roku 2000. Dysponujesz dwiema listami: ls_pop i ls_exp. Zawierają one odpowiednio liczby ludności i wydatki na ochronę zdrowia per capita dla poszczególnych krajów.
Funkcja total_exp() przyjmuje dwa argumenty: pop (liczba ludności) oraz exp_pc (wydatki per capita na ochronę zdrowia). Zwraca całkowite wydatki w miliardach dolarów amerykańskich. Chcesz zastosować tę funkcję do list ls_pop i ls_exp równolegle. Pakiet parallel jest już wczytany.
To ćwiczenie jest częścią kursu
Programowanie równoległe w R
Instrukcje do ćwiczenia
- Zastosuj funkcję
total_exp()równolegle do każdego elementu listls_popils_exp. - Wskaż listę, której elementy zostaną przekazane do argumentu
popfunkcjitotal_exp(). - Analogicznie wskaż listę, która zostanie przekazana do argumentu
exp_pcfunkcjitotal_exp().
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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))))))