Correlation की डिबगिंग
आप US Department of Health के लिए काम करते हैं. आपकी टीम जाँच कर रही है कि क्या एक से अधिक गर्भधारण (जुड़वाँ, ट्रिप्लेट आदि) का संबंध गर्भावस्था के दौरान अधिक वज़न बढ़ने से है. आपने correlation निकाला है, लेकिन आपके मान दूसरे विश्लेषक के अनुमान से काफी अलग हैं. उन्होंने बताया है कि आपके डेटा में 99 पाउंड से अधिक वज़न-वृद्धि के मान दर्ज नहीं हैं. आपने दोबारा गणना चलाने का निर्णय लिया है, और इस बार आप वज़न-वृद्धि के अधिकतम मान को लॉग करना चाहते हैं.
आपके वर्कस्पेस में ls_df नाम की डेटा फ्रेम्स की एक लिस्ट है. ls_df का हर एलिमेंट प्रत्येक राज्य के जन्म-सम्बंधी डेटा को रखता है. आपने गणना को parallel में चलाने के लिए एक foreach लूप लिखा है.
foreach और doParallel आपके लिए लोड कर दिए गए हैं.
यह अभ्यास पाठ्यक्रम का हिस्सा है
R में पैरेलल प्रोग्रामिंग
अभ्यास निर्देश
- चार कोर का एक क्लस्टर बनाएँ.
- क्लस्टर से आने वाले संदेशों को लॉग करने के लिए
state_log.txtनाम की फ़ाइल निर्दिष्ट करें. - लूप के अंदर, डेटा फ्रेम
dfमें कॉलमweight_gain_poundsके अधिकतम मान को लॉग करें. - प्रिंट संदेश जाँचने के लिए
state_log.txtपढ़ें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Create a cluster of four cores
cl <- ___(___,
# Specify a file to log print statements
___ = "___")
registerDoParallel(cl)
res <- foreach(df = ls_df) %dopar% {
print(paste(unique(df$state), ":",
# Calculate maximum of weight_gain_pounds in df
___(___)))
cor(df$plurality, df$weight_gain_pounds)
}
stopCluster(cl)
# Read log file to check print messages
read.delim("___", sep = ";")