ifelse()
एक शक्तिशाली फंक्शन है ifelse(). यह सिर्फ 1 लाइन के कोड में if स्टेटमेंट बना देता है, और उससे भी बढ़कर, यह पूरे वेक्टर पर काम करता है!
मान लीजिए आपके पास स्टॉक प्राइस का एक वेक्टर है. अगर आप हर बार जब apple > 110 हो तो "Buy!" और वरना "Do nothing!" रिटर्न करना चाहें, तो? एक साधारण if स्टेटमेंट इस समस्या को हल करने के लिए पर्याप्त नहीं होगा. लेकिन ifelse() के साथ आप ऐसा कर सकते हैं:
apple
[1] 109.49 109.90 109.11 109.95 111.03 112.12
ifelse(test = apple > 110, yes = "Buy!", no = "Do nothing!")
[1] "Do nothing!" "Do nothing!" "Do nothing!" "Do nothing!" "Buy!"
[6] "Buy!"
ifelse() test को evaluate करके एक logical वेक्टर बनाता है, और जहाँ यह logical वेक्टर TRUE होता है, वहाँ TRUE को yes में दी गई वैल्यू से बदल देता है. इसी तरह, FALSE को no से बदल दिया जाता है.
stocks डेटा फ़्रेम आपके उपयोग के लिए उपलब्ध है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
इंटरमीडिएट R फॉर फाइनेंस
अभ्यास निर्देश
ifelse()का उपयोग करके जाँचिए किmicr60से ऊपर लेकिन62से नीचे है या नहीं. जहाँ शर्त सच हो, वहाँ1और जहाँ झूठ हो, वहाँ0रिटर्न करें. परिणाम कोstocksमेंmicr_buyनाम के कॉलम के रूप में जोड़ें.ifelse()का उपयोग करके जाँचिए किapple117से बड़ा है या नहीं. अगरTRUEहो तो लौटाई गई वैल्यूdateकॉलम होनी चाहिए, अन्यथाNA.stocksप्रिंट करें.datenumeric बन गया!ifelse()रिटर्न करने से पहले date के attribute को हटा देता है, इसलिए यह numeric बन जाता है.apple_dateकॉलम को"Date"कीclass()असाइन करें.- दोबारा
stocksप्रिंट करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Microsoft test
stocks$micr_buy <- ifelse(test = ___, yes = ___, no = ___)
# Apple test
stocks$apple_date <- ifelse(test = ___, yes = stocks$date, no = NA)
# Print stocks
___
# Change the class() of apple_date.
class(___) <- ___
# Print stocks again
___