फॉर-लूप एक नियंत्रण संरचना है जो हमें निर्दिष्ट समय में निर्देशों के एक सेट को दोहराने में सक्षम बनाती है। यह आर में पुनरावृत्ति के लिए आमतौर पर इस्तेमाल की जाने वाली विधि है, खासकर जब हमें कुछ तत्वों पर समान ऑपरेशन करने की आवश्यकता होती है या डेटा संरचना जैसे कि डेटाफ़्रेम में पुनरावृति होती है। पंक्तियाँ और स्तंभ R में DataFrames बनाते हैं जहाँ प्रत्येक पंक्ति एक अवलोकन का प्रतिनिधित्व करती है और प्रत्येक स्तंभ उस अवलोकन के एक चर या पहलू को दर्शाता है।
इस विशेष लेख के साथ, हम विभिन्न दृष्टिकोणों में डेटाफ़्रेम पर पुनरावृति करने के लिए फॉर-लूप का उपयोग करते हैं। सावधान रहें कि पंक्तियों और स्तंभों में फॉर-लूप पुनरावृत्ति बड़े डेटाफ़्रेम के लिए अत्यधिक कम्प्यूटेशनल हो सकती है।
उदाहरण 1: आर में डेटाफ्रेम पंक्तियों पर फॉर-लूप का उपयोग करना
R में फॉर-लूप का उपयोग DataFrame की पंक्तियों पर पुनरावृति करने के लिए किया जा सकता है। फॉर-लूप के अंदर, हम DataFrame की प्रत्येक पंक्ति तक पहुँचने के लिए पंक्ति अनुक्रमणिका का उपयोग कर सकते हैं। आइए निम्नलिखित आर कोड पर विचार करें जो निर्दिष्ट डेटाफ़्रेम की पंक्तियों पर पुनरावृति करने के लिए फॉर-लूप का प्रदर्शन है।
डेटा = डेटा.फ्रेम (सी 1 = सी (1: 5),
सी2 = सी(6:10),
सी3 = सी(11:15))
for(i in 1:nrow(data)) {
पंक्ति <- डेटा [मैं,]
प्रिंट (पंक्ति)
}
यहां, हम पहले 'डेटा' के अंदर data.frame() फ़ंक्शन को परिभाषित करते हैं। यहां data.frame() फ़ंक्शन में तीन कॉलम हैं। प्रत्येक कॉलम को क्रमशः 1 से 5, 6 से 10, और 11 से 15 तक की संख्याओं के अनुक्रम के साथ सेट किया गया है। उसके बाद, फॉर-लूप फ़ंक्शन तैनात किया जाता है जो पंक्तियों की कुल संख्या प्राप्त करने के लिए nrow () फ़ंक्शन का उपयोग करके डेटाफ़्रेम 'डेटा' की पंक्तियों पर पुनरावृत्त करता है। लूप वेरिएबल, 'i', मानों को 'डेटा' में पंक्तियों की संपूर्ण संख्या पर ले जाता है।
फिर, हम स्क्वायर ब्रैकेट नोटेशन '[]' का उपयोग करके डेटाफ्रेम 'डेटा' की i-वीं पंक्ति निकालते हैं। निकाली गई पंक्ति को 'पंक्ति' चर में संग्रहीत किया जाता है जिसे प्रिंट () फ़ंक्शन द्वारा मुद्रित किया जाएगा।
इसलिए, लूप DataFrame में सभी पंक्तियों पर पुनरावृति करता है और कॉलम के मानों के साथ आउटपुट में पंक्ति संख्या प्रदर्शित करता है।
उदाहरण 2: डेटाफ़्रेम कॉलम पर फॉर-लूप का उपयोग करना
इसी तरह, हम निर्दिष्ट डेटाफ़्रेम के कॉलम पर लूप करने के लिए R में फॉर-लूप का उपयोग कर सकते हैं। हम कॉलम पर लूप करने के लिए पिछले कोड का उपयोग कर सकते हैं लेकिन हमें फॉर-लूप में ncol() फ़ंक्शन का उपयोग करना चाहिए। इसके विपरीत, हमारे पास फॉर-लूप का उपयोग करके डेटाफ़्रेम के कॉलम पर लूपिंग करने का सबसे सरल तरीका है। इसके लिए निम्नलिखित R कोड पर विचार करें:
df = data.frame (col1 = c (10, 20, 30, 40, 50),col2 = c(11, 21, 31, 41, 51),
col3 = c(12, 22, 32, 42, 52))
for(colnames में colnames(df)) {
स्तंभ <- df [[कर्नल]]
प्रिंट (स्तंभ)
}
यहां, हम सबसे पहले df वेरिएबल बनाते हैं जहां कॉलम इंसर्शन के साथ data.frame() कार्यरत है। 'Df' DataFrame में तीन कॉलम होते हैं जिनमें संख्यात्मक मान होते हैं। अगला, हम कॉलनाम () फ़ंक्शन का उपयोग करके 'डेटा' डेटाफ़्रेम के कॉलम नामों पर पुनरावृति करने के लिए एक फॉर-लूप का उपयोग करते हैं। प्रत्येक पुनरावृत्ति में, लूप वेरिएबल 'कोल' वर्तमान कॉलम का नाम लेता है। निकाले गए कॉलम को फिर एक नए वेरिएबल में संग्रहित किया जाता है जो 'कॉलम' है।
इस प्रकार, 'कॉलम' चर का डेटा निम्न कंसोल पर आउटपुट प्रिंट करता है:
उदाहरण 3: संपूर्ण डेटाफ़्रेम पर फॉर-लूप का उपयोग करना
पिछले उदाहरणों में, हमने क्रमशः फॉर-लूप का उपयोग करके कॉलम और पंक्तियों पर लूप किया। अब, हम एक साथ DataFrame की पंक्तियों और स्तंभों दोनों पर पुनरावृति करने के लिए नेस्टेड लूप का उपयोग करते हैं। आर का कोड निम्नलिखित में प्रदान किया गया है जहां कॉलम और पंक्तियों पर नेस्टेड फॉर-लूप का उपयोग किया जाता है:
कर्मचारी <- डेटा.फ्रेम (आईडी = 1: 4,नाम = सी ('किम', 'जॉन', 'इयान', 'मार्क'),
स्थान = सी ('ऑस्ट्रेलिया', 'अमेरिका', 'कनाडा', 'जॉर्डन'),
वेतन = सी (2000, 1800, 1500, 1000))
for (पंक्ति 1:nrow(कर्मचारी)) {
for (col in 1:ncol(कर्मचारी)) {
प्रिंट (पेस्ट ('पंक्ति सूचकांक', पंक्ति, 'कॉलम नाम', कर्नल, 'सेल वैल्यू', कर्मचारी [पंक्ति, कर्नल]))
}
}
यहां, हम 'कर्मचारी' चर घोषित करते हैं जहां कॉलम सेट करने के लिए data.frame() को कॉल किया जाता है। प्रत्येक कॉलम में मान वैक्टर का उपयोग करके निर्दिष्ट किए गए हैं। फिर, 'कर्मचारियों' डेटाफ़्रेम की पंक्ति और स्तंभ के लिए, हम डेटा पर पुनरावृति करने के लिए दो नेस्टेड फ़ॉर-लूप का उपयोग करते हैं। बाहरी लूप '1: nrow (कर्मचारी)' का उपयोग करके निर्दिष्ट डेटाफ़्रेम की पंक्तियों पर पुनरावृति करता है। प्रत्येक पंक्ति के लिए, '1: ncol (कर्मचारी)' का उपयोग डेटाफ़्रेम के स्तंभों पर बार-बार पुनरावृति करने के लिए आंतरिक लूप में किया जाता है।
उसके बाद, हमारे पास नेस्टेड लूप के अंदर एक प्रिंट () फ़ंक्शन होता है जो पंक्ति इंडेक्स, कॉलम इंडेक्स और सेल वैल्यू को एक स्ट्रिंग में जोड़ने के लिए पेस्ट () फ़ंक्शन को तैनात करता है। यहां कर्मचारी [पंक्ति, कर्नल] अभिव्यक्ति वर्तमान सेल में मूल्य प्राप्त करती है जहां पंक्ति और स्तंभ क्रमशः मौजूदा पंक्ति और स्तंभ सूचकांक हैं।
इस प्रकार, कंसोल पर आउटपुट को एक स्ट्रिंग में समेकित पंक्ति अनुक्रमणिका, स्तंभ अनुक्रमणिका और सेल मान के साथ पुनर्प्राप्त किया जाता है।
उदाहरण 4: आर में फॉर-लूप वैकल्पिक विधि
फॉर लूप अब आर भाषा में पुराना हो गया है। हालाँकि, यह कुछ वैकल्पिक तरीके प्रदान करता है जो फॉर-लूप के समान काम करता है और फॉर-लूप की तुलना में तेज़ होता है। विधि 'परिवार लागू करें' फ़ंक्शंस से है जो डेटाफ़्रेम पर पुनरावृति करने के लिए पृष्ठभूमि में फॉर-लूप चलाते हैं। आइए निम्नलिखित R कोड पर विचार करें जहां sapply() फ़ंक्शन का उपयोग DataFrame पर लूप करने के लिए किया जाता है।
dfX <- data.frame (var1 = c (1: 5),var2=c(6:10),
var3=c(11:15),
var4=c(16:20))
dfx
सैप्ली (डीएफएक्स, योग)
यहां, हम पहले दो कॉलम वाले डेटा.फ्रेम () फ़ंक्शन को कॉल करके 'dfX' डेटाफ़्रेम स्थापित करते हैं, प्रत्येक में संख्यात्मक मान होते हैं। फिर हम मूल 'dfX' DataFrame को कंसोल पर प्रिंट करते हैं। अगले चरण में, हम प्रदान किए गए DataFrame पर पुनरावृति करने के लिए sapply () फ़ंक्शन का उपयोग करते हैं और प्रत्येक कॉलम का योग प्राप्त करते हैं। सैप्ली () फ़ंक्शन सामान्य रूप से 'x' और 'FUN' तर्कों को लेता है। इस स्थिति में, X 'dfX' DataFrame है, और 'FUN' वह योग () फ़ंक्शन है जो DataFrame के प्रत्येक कॉलम पर लागू होता है।
sapply() फ़ंक्शन के माध्यम से प्राप्त पुनरावृत्ति का परिणाम निम्न स्क्रीन में प्राप्त किया जाता है। DataFrame के योग ऑपरेशन के परिणाम प्रत्येक कॉलम के लिए दिखाए जाते हैं। इसके अलावा, हम आर में फॉर-लूप ऑपरेशन के लिए 'लागू परिवार' के कुछ अन्य कार्यों का भी उपयोग कर सकते हैं:
निष्कर्ष
हम एक विशिष्ट ऑपरेशन करने के लिए डेटाफ़्रेम की पंक्तियों या स्तंभों पर पुनरावृति करने के लिए फॉर-लूप के साथ काम करते हैं। फॉर-लूप का उपयोग व्यक्तिगत रूप से कॉलम और पंक्तियों पर पुनरावृति करने के लिए किया जाता है। इसके अलावा, हम एक ही समय में डेटाफ़्रेम के कॉलम और पंक्तियों दोनों पर पुनरावृत्ति के लिए इसका उपयोग करते हैं। अधिकांश समय, वांछित परिणाम प्राप्त करने के लिए कार्यों को लागू करना अधिक प्रभावी होता है। लागू फ़ंक्शन का उदाहरण पिछले उदाहरण में फॉर-लूप ऑपरेशन पर दिया गया है।