lapply और anonymous functions
अपना खुद का फंक्शन लिखना और फिर उन्हें lapply() के अंदर इस्तेमाल करना काबिले-तारीफ है! लेकिन केवल एक बार इस्तेमाल करने के लिए फंक्शन डिफाइन करना कुछ ज़्यादा ही नहीं हो जाता? इसी लिए आप R में anonymous functions का उपयोग कर सकते हैं।
पहले, आपने सीखा था कि R में फंक्शन अपने आप में ऑब्जेक्ट होते हैं। इसका मतलब है कि वे अपने आप किसी नाम से बंधे नहीं होते। जब आप कोई फंक्शन बनाते हैं, तो आप असाइनमेंट ऑपरेटर का इस्तेमाल करके उसे नाम दे सकते हैं। लेकिन फंक्शन को नाम न देना भी पूरी तरह संभव है। इसे anonymous function कहते हैं:
# Named function
triple <- function(x) { 3 * x }
# Anonymous function with same implementation
function(x) { 3 * x }
# Use anonymous function inside lapply()
lapply(list(1,2,3), function(x) { 3 * x })
split_low आपके लिए पहले से परिभाषित है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
इंटरमीडिएट R
अभ्यास निर्देश
- पहली
lapply()कॉल को इस तरह बदलें कि वह वही काम करने वाला anonymous function उपयोग करे। - इसी तरह, दूसरी
lapplyकॉल को भीselect_second()फंक्शन के anonymous संस्करण का उपयोग करने के लिए बदलें। select_first()औरselect_second()दोनों की परिभाषाएँ हटा दें, क्योंकि अब उनकी ज़रूरत नहीं है.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# split_low has been created for you
split_low
# Transform: use anonymous function inside lapply
select_first <- function(x) {
x[1]
}
names <- lapply(split_low, select_first)
# Transform: use anonymous function inside lapply
select_second <- function(x) {
x[2]
}
years <- lapply(split_low, select_second)