मॉडलिंग errors पकड़ें
जन्म के समय जीवन प्रत्याशा (life expectancy at birth) जनसंख्या के स्वास्थ्य का एक बड़ा संकेतक है।
आप एक कंसल्टेंट पब्लिक हेल्थ रिसर्चर के रूप में काम करते हैं। आपका क्लाइंट यह जानना चाहता है कि हेल्थकेयर पर खर्च किए गए प्रत्येक डॉलर पर जीवन प्रत्याशा में कितनी वृद्धि होती है। आपने 2001 से 2021 तक सभी देशों के लिए जीवन प्रत्याशा (वर्षों में) और उनके प्रति व्यक्ति हेल्थकेयर व्यय का डेटा इकट्ठा किया है। कंसल्टिंग स्टैटिस्टिशियन ने प्रत्येक देश के डेटा पर regression मॉडल फिट करने का कोड लिखा है। हालाँकि, डेटा में missing values हैं, जो मॉडल फिटिंग में errors का कारण बनती हैं।
आपके workspace में ls_df नाम की data frames की एक list है, जहाँ प्रत्येक एलिमेंट किसी एक देश का डेटा है। आप parLapply() के साथ parallelize करने और errors पकड़ने के लिए tryCatch() का इस्तेमाल करने की योजना बनाते हैं। आपके लिए parallel पैकेज लोड कर दिया गया है।
यह अभ्यास पाठ्यक्रम का हिस्सा है
R में पैरेलल प्रोग्रामिंग
अभ्यास निर्देश
errorआर्गुमेंट में एक फ़ंक्शन दें। यह फ़ंक्शन एक आर्गुमेंटeले औरpaste()का उपयोग करके"Error!"स्ट्रिंग कोeके पहले जोड़े।fit_lm()को एडिट कर के जाँचें कि क्याmodelएक character string है जिसमें error message है।- छह cores वाला एक क्लस्टर बनाएँ।
parLapply()का उपयोग करके listls_dfपर parallel मेंfit_lm()अप्लाई करें।
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
fit_lm <- function (df) {
model <- tryCatch(lm(life_expectancy ~ health_exp_per_capita, data = df),
# Supply a function that pastes "Error!" and one argument, e
error = ___)
# If model is character (error) return model else return model coefficient
if (___) return(model)
else return(coef(model)[2])
}
# Make a cluster of six cores
cluster <- ___(___)
# Apply fit_lm in parallel to ls_df using cluster
ls_mod <- parLapply(___, ___, ___)
stopCluster(cluster)
print(paste(sum(sapply(ls_mod, is.numeric)), "models fit and", sum(sapply(ls_mod, is.character)), "errors caught!"))