Cheltuieli medicale cu clusterMap()
La o conferință recentă din domeniul sănătății, s-a susținut că cheltuielile totale cu asistența medicală sunt în creștere la nivel global.
Ai participat la această conferință și dorești să obții niște estimări rapide pentru a verifica această afirmație. Ai găsit un set de date care îți oferă cheltuielile medicale per capita și populația pentru anul 2000 și ulterior. Ai două liste: ls_pop și ls_exp. Acestea conțin, respectiv, dimensiunile populației și cheltuielile medicale per capita pentru fiecare țară.
Funcția total_exp() primește două argumente: pop (populația) și exp_pc (cheltuielile medicale per capita). Această funcție returnează cheltuielile totale în miliarde de dolari SUA. Vrei să aplici această funcție asupra listelor ls_pop și ls_exp în paralel. Pachetul parallel a fost încărcat.
Acest exercițiu face parte din cursul
Programare paralelă în R
Instrucțiuni pentru exercițiu
- Aplică
total_exp()în paralel pentru fiecare element dinls_popșils_exp. - Specifică lista ale cărei elemente vor fi transmise argumentului
popal funcțieitotal_exp(). - În mod similar, specifică lista care va fi transmisă argumentului
exp_pcal funcțieitotal_exp().
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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))))))