ऐसे फंक्शन अप्लाई करें जो NULL लौटाते हैं
पिछले सभी अभ्यासों में यह माना गया था कि वे फंक्शन, जिन्हें वेक्टर और लिस्ट पर अप्लाई किया गया, वास्तव में कोई सार्थक परिणाम लौटाते हैं। उदाहरण के लिए, tolower() फंक्शन सिर्फ स्ट्रिंग्स को लोअरकेस में बदलकर लौटाता है। ऐसा हमेशा नहीं होगा। मान लीजिए आप किसी लिस्ट के हर एलिमेंट की संरचना दिखाना चाहते हैं। इसके लिए आप str() फंक्शन का उपयोग कर सकते हैं, जो NULL लौटाता है:
lapply(list(1, "a", TRUE), str)
यह कॉल वास्तव में इनपुट लिस्ट के समान आकार की एक लिस्ट लौटाती है, जिसमें सभी वैल्यूज़ NULL होती हैं। दूसरी ओर, अगर आप अलग से यह चलाएँ:
str(TRUE)
तो यह कंसोल पर सिर्फ logical की संरचना प्रिंट करता है, NULL नहीं। ऐसा इसलिए है क्योंकि str() पर्दे के पीछे invisible() का उपयोग करता है, जो रिटर्न वैल्यू की एक invisible कॉपी लौटाता है, इस केस में NULL। जब str() के परिणाम को असाइन नहीं किया जाता, तो यह उसे प्रिंट होने से रोकता है।
निम्नलिखित कोड चंक क्या लौटाएगा (split_low पहले से workspace में उपलब्ध है)? कंसोल में चलाने से पहले परिणाम के बारे में तर्क करने की कोशिश कीजिए!
lapply(split_low, function(x) {
if (nchar(x[1]) > 5) {
return(NULL)
} else {
return(x[2])
}
})
यह अभ्यास पाठ्यक्रम का हिस्सा है
इंटरमीडिएट R
इंटरैक्टिव व्यावहारिक अभ्यास
हमारे इंटरैक्टिव अभ्यासों में से किसी एक के साथ सिद्धांत को व्यवहार में बदलें
अभ्यास शुरू करें