शुरू करेंमुफ़्त में शुरू करें

प्राइस ट्रेंड्स के लिए नेस्टेड foreach लूप्स

स्टॉक मार्केट अपने अप्रत्याशित व्यवहार के लिए जाना जाता है। आप एक इन्वेस्टमेंट फर्म में काम करते हैं और आपके बॉस एक हफ्ते की विंडो में स्टॉक प्राइसेज़ के ट्रेंड्स देखना चाहते हैं.

आपने 2015 से दस टेक कंपनियों के डेली स्टॉक प्राइस का डेटा एकत्र किया है। आपकी टीम के डेटा साइंटिस्ट ने रिग्रेशन मॉडल फिट करने का कोड दिया है। आप इस कोड को foreach(), %:%, और %dopar% का उपयोग करके पैरेललाइज़ करने की योजना बना रहे हैं.

इटरेट करने के लिए कुल कॉलमों की संख्या आपके वर्कस्पेस में ncols के रूप में, और रो की संख्या nrows के रूप में सेव है। parallel, doParalel, और foreach पैकेज आपके लिए लोड किए गए हैं। क्लस्टर cl सेटअप कर दिया गया है। आपको नेस्टेड foreach() लूप्स लिखने हैं.

यह अभ्यास पाठ्यक्रम का हिस्सा है

R में पैरेलल प्रोग्रामिंग

पाठ्यक्रम देखें

अभ्यास निर्देश

  • foreach लूप्स के साथ उपयोग के लिए क्लस्टर रजिस्टर करें.
  • एक foreach लूप लिखिए जो कॉलम 1 से ncols तक इटरेट करे, परिणामों को "cbind" से इकट्ठा करे, और नेस्टिंग ऑपरेटर का उपयोग करे.
  • दूसरा foreach लूप लिखिए जो रो 1 से nrows तक इटरेट करे, परिणामों को "c" से इकट्ठा करे, और do-parallel ऑपरेटर का उपयोग करे.
  • सभी कंप्यूटेशन पूरे होने पर क्लस्टर बंद करें.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

# Register the cluster to use with %dopar%
___
# Use foreach loop to iterate over columns one to ncol
moving_trend <- foreach(___, ___) %:%
# Iterate over rows one to nrows within each column
  foreach(___, ___) %dopar% {
    prices <- data[row:(row + 6), col]
    if (any(is.na(prices))) NA
    else {days <- 1:7
          model <- lm(prices ~ days)
          model$coefficients[2]}
  }
# Stop cluster  
___
print(paste("Total number of models fit:", sum(!is.na(moving_trend))))
कोड संपादित करें और चलाएँ