R में फैक्टर्स वे वेरिएबल होते हैं जो श्रेणीबद्ध (categorical) वेरिएबल को लेकर डेटा को स्तरों (levels) में संग्रहीत करते हैं। इस फ़ंक्शन का मुख्य उपयोग डेटा विश्लेषण, विशेषकर सांख्यिकीय विश्लेषण में होता है। यह डेटा की अनावश्यक पुनरावृत्ति को कम करने और मेमोरी में काफी जगह बचाने में भी सहायक है।
नोट: श्रेणीबद्ध वेरिएबल वे वेरिएबल होते हैं जो लेबल या नामों के आधार पर मान लेते हैं। उदाहरण के लिए, किसी व्यक्ति का रक्त समूह A, B, AB या O हो सकता है।
factor फ़ंक्शन
उपयोग: ऐसे डेटा का वर्गीकरण करना जिसमें मानों की संख्या कम हो। पैरामीटर्स: factor(v): v मानों का एक वेक्टर हो सकता है।
आइए फैक्टर का एक उदाहरण देखते हैं।
नीचे दिए कोड में दो श्रेणीबद्ध वेरिएबल हैं—"Male" और "Female"—जिन्हें factor values भी कहा जाता है।
gender <- c("Male","Female","Female","Male","Female")संचालित द्वारा
आइए gender के लिए एक factor बनाएँ जहाँ 'factor(gender)' का उपयोग किया गया है और उसे 'gender.factor' नाम के वेरिएबल में सहेजा गया है।
gender.factor <- factor(gender)
gender.factor
संचालित द्वारा
Male
Female
Female
Male
Female
Levels:
'Female'
'Male'
ऊपर दिया गया कोड नीचे जैसा आउटपुट देता है:
Male Female Female Male Female
Levels:'Female''Male'संचालित द्वारा
आप देख सकते हैं कि मान इनपुट वेक्टर के समान ही छपे हैं। साथ ही, 'Levels'—'Female' और 'Male'—वर्णानुक्रम में सॉर्ट किए गए हैं।
factor फ़ंक्शन की संरचना
नीचे दिए कोड में 'str(gender.factor)' का उपयोग करके factor फ़ंक्शन की संरचना देखते हैं।
उपरोक्त आउटपुट दिखाता है कि 2 स्तरों का एक factor है। factor कैरेक्टर वेक्टर (gender) को पूर्णांकों के वेक्टर में बदल देता है। "Female" पहला स्तर है जिसे 1 के रूप में एन्कोड किया गया है, जबकि "Male" दूसरा स्तर है जिसे 2 के रूप में एन्कोड किया गया है।
साथ ही, कैरेक्टर से न्यूमेरिक में एन्कोड करने का मुख्य उद्देश्य यह है कि श्रेणियाँ दोहराई जा सकती हैं, जिससे अनावश्यक पुनरावृत्ति होती है और मेमोरी में अधिक जगह लगती है। लेकिन factor का उपयोग करके यह बोझ कम हो जाता है और मेमोरी स्पेस बचता है।
Order Levels बदलना
आइए ऑर्डर लेवल्स बदलते हैं ताकि "Female" का स्तर 2 और "Male" का 1 हो जाए।
आइए "Male" और "Female" के स्तर बदलकर gender के लिए एक नया factor बनाएँ, जिसे "levels" में वेक्टर इनपुट के रूप में पास किया गया है। अंतिम परिणाम "gender.factor2" नामक वेरिएबल में सहेजा जाएगा।
gender.factor2 <- factor(gender,levels=c("Male","Female"))
gender.factor2
str(gender.factor2)संचालित द्वारा
'gender.factor2' प्रिंट किया गया है और उसकी संरचना 'str(gender.factor2)' से प्रिंट की गई है, जहाँ निम्नलिखित बदलाव देखे जा सकते हैं।
Male Female Female Male Female
Levels:'Male''Female'
Factor w/2 levels "Male","Female":12212संचालित द्वारा
ऊपर दिए आउटपुट में "Male" का एन्कोडिंग 1 और "Female" का 2 है। यह 'gender.factor' से अलग है, जिसमें ऊपर वाले कोड में इसका उलटा था।
Factor levels का नाम बदलना
आइए इनपुट में वेक्टर मानों के नाम बदलते हैं—पहले आर्ग्युमेंट के रूप में 'levels' में "Male" और "Female" निर्दिष्ट करें, और दूसरे आर्ग्युमेंट 'labels' में क्रमशः "Gen_Male" और "Gen_Female" दें ताकि बदले हुए वेक्टर मान प्राप्त हों।
factor(gender,levels = c("Male","Female"),labels = c("Gen_Male","Gen_Female"))संचालित द्वारा
Gen_Male
Gen_Female
Gen_Female
Gen_Male
Gen_Female
Levels:
'Gen_Male'
'Gen_Female'
Gen_Male Gen_Female Gen_Female Gen_Male Gen_Female
Levels:'Gen_Male''Gen_Female'संचालित द्वारा
ऊपर दिया कोड ऐसा आउटपुट देता है जहाँ "Male" का नाम बदलकर "Gen_Male" और "Female" का "Gen_Female" कर दिया गया है।
श्रेणीबद्ध वेरिएबल को क्रमबद्ध करना
आइए ऐसा उदाहरण देखें जहाँ क्रम महत्त्वपूर्ण होता है, यानी ऑर्डिनल श्रेणीबद्ध मान। उदाहरण के लिए, पैंट के साइज़ में Large के लिए "L", Extra Large के लिए "XL" और Extra extra Large के लिए "XXL" को आरोही क्रम में व्यवस्थित किया जा सकता है। नीचे दिए कोड में "L", "XL" और "XXL" अक्षरों का वेक्टर इनपुट एकत्र कर 'pant' में सहेजा गया है। 'pant.factor' वह वेरिएबल है जिसमें स्तरों को आरोही क्रम में 'levels = c("L", "XL", "XXL")' के रूप में प्रदान किया गया है और अंततः 'ordered = TRUE' दिया गया है, जिससे आपकी आवश्यकता के अनुसार सॉर्टिंग संभव हो जाती है।
XL L XL XXL L XL
Levels:'L'<'XL'<'XXL'TRUEसंचालित द्वारा
ऊपर दिया आउटपुट पहले सामान्य आउटपुट दिखाता है जहाँ वेक्टर मान (XL, L, XL, XXL, L, XL) 'pant.factor' के उपयोग से प्रिंट होते हैं। वेक्टर के लेवल्स 'L' < 'XL' < 'XXL' आरोही क्रम में व्यवस्थित हैं, जो कंसोल पर प्रिंट होते हैं। साथ ही, 'pant.factor[1] > pant.factor[2]' यह तुलना करता है कि "XL" "L" से बड़ा है या नहीं, जिसका परिणाम TRUE आता है।
बधाई हो
बधाई हो, आप इस ट्यूटोरियल के अंत तक पहुँच गए हैं!
इस ट्यूटोरियल में, आपने R में factor फ़ंक्शन—उदाहरण सहित—उसकी संरचना, ऑर्डर लेवल्स, लेवल्स का नाम बदलना, और अंत में श्रेणीबद्ध मानों के क्रम निर्धारण—को कवर किया।
R में फैक्टर्स वे वेरिएबल होते हैं जो श्रेणीबद्ध (categorical) वेरिएबल को लेकर डेटा को स्तरों (levels) में संग्रहीत करते हैं। इस फ़ंक्शन का मुख्य उपयोग डेटा विश्लेषण, विशेषकर सांख्यिकीय विश्लेषण में होता है। यह डेटा की अनावश्यक पुनरावृत्ति को कम करने और मेमोरी में काफी जगह बचाने में भी सहायक है।
नोट: श्रेणीबद्ध वेरिएबल वे वेरिएबल होते हैं जो लेबल या नामों के आधार पर मान लेते हैं। उदाहरण के लिए, किसी व्यक्ति का रक्त समूह A, B, AB या O हो सकता है।
factor फ़ंक्शन
उपयोग: ऐसे डेटा का वर्गीकरण करना जिसमें मानों की संख्या कम हो।
पैरामीटर्स: factor(v): v मानों का एक वेक्टर हो सकता है।
आइए फैक्टर का एक उदाहरण देखते हैं।
नीचे दिए कोड में दो श्रेणीबद्ध वेरिएबल हैं—"Male" और "Female"—जिन्हें factor values भी कहा जाता है।
आइए gender के लिए एक factor बनाएँ जहाँ 'factor(gender)' का उपयोग किया गया है और उसे 'gender.factor' नाम के वेरिएबल में सहेजा गया है।
Levels:
ऊपर दिया गया कोड नीचे जैसा आउटपुट देता है:
आप देख सकते हैं कि मान इनपुट वेक्टर के समान ही छपे हैं। साथ ही, 'Levels'—'Female' और 'Male'—वर्णानुक्रम में सॉर्ट किए गए हैं।
factor फ़ंक्शन की संरचना
नीचे दिए कोड में 'str(gender.factor)' का उपयोग करके factor फ़ंक्शन की संरचना देखते हैं।
उपरोक्त आउटपुट दिखाता है कि 2 स्तरों का एक factor है। factor कैरेक्टर वेक्टर (gender) को पूर्णांकों के वेक्टर में बदल देता है। "Female" पहला स्तर है जिसे 1 के रूप में एन्कोड किया गया है, जबकि "Male" दूसरा स्तर है जिसे 2 के रूप में एन्कोड किया गया है।
साथ ही, कैरेक्टर से न्यूमेरिक में एन्कोड करने का मुख्य उद्देश्य यह है कि श्रेणियाँ दोहराई जा सकती हैं, जिससे अनावश्यक पुनरावृत्ति होती है और मेमोरी में अधिक जगह लगती है। लेकिन factor का उपयोग करके यह बोझ कम हो जाता है और मेमोरी स्पेस बचता है।
Order Levels बदलना
आइए ऑर्डर लेवल्स बदलते हैं ताकि "Female" का स्तर 2 और "Male" का 1 हो जाए।
आइए "Male" और "Female" के स्तर बदलकर gender के लिए एक नया factor बनाएँ, जिसे "levels" में वेक्टर इनपुट के रूप में पास किया गया है। अंतिम परिणाम "gender.factor2" नामक वेरिएबल में सहेजा जाएगा।
Levels:
'gender.factor2' प्रिंट किया गया है और उसकी संरचना 'str(gender.factor2)' से प्रिंट की गई है, जहाँ निम्नलिखित बदलाव देखे जा सकते हैं।
ऊपर दिए आउटपुट में "Male" का एन्कोडिंग 1 और "Female" का 2 है। यह 'gender.factor' से अलग है, जिसमें ऊपर वाले कोड में इसका उलटा था।
Factor levels का नाम बदलना
आइए इनपुट में वेक्टर मानों के नाम बदलते हैं—पहले आर्ग्युमेंट के रूप में 'levels' में "Male" और "Female" निर्दिष्ट करें, और दूसरे आर्ग्युमेंट 'labels' में क्रमशः "Gen_Male" और "Gen_Female" दें ताकि बदले हुए वेक्टर मान प्राप्त हों।
Levels:
ऊपर दिया कोड ऐसा आउटपुट देता है जहाँ "Male" का नाम बदलकर "Gen_Male" और "Female" का "Gen_Female" कर दिया गया है।
श्रेणीबद्ध वेरिएबल को क्रमबद्ध करना
आइए ऐसा उदाहरण देखें जहाँ क्रम महत्त्वपूर्ण होता है, यानी ऑर्डिनल श्रेणीबद्ध मान। उदाहरण के लिए, पैंट के साइज़ में Large के लिए "L", Extra Large के लिए "XL" और Extra extra Large के लिए "XXL" को आरोही क्रम में व्यवस्थित किया जा सकता है। नीचे दिए कोड में "L", "XL" और "XXL" अक्षरों का वेक्टर इनपुट एकत्र कर 'pant' में सहेजा गया है। 'pant.factor' वह वेरिएबल है जिसमें स्तरों को आरोही क्रम में 'levels = c("L", "XL", "XXL")' के रूप में प्रदान किया गया है और अंततः 'ordered = TRUE' दिया गया है, जिससे आपकी आवश्यकता के अनुसार सॉर्टिंग संभव हो जाती है।
Levels:
TRUE
ऊपर दिया आउटपुट पहले सामान्य आउटपुट दिखाता है जहाँ वेक्टर मान (XL, L, XL, XXL, L, XL) 'pant.factor' के उपयोग से प्रिंट होते हैं। वेक्टर के लेवल्स 'L' < 'XL' < 'XXL' आरोही क्रम में व्यवस्थित हैं, जो कंसोल पर प्रिंट होते हैं। साथ ही, 'pant.factor[1] > pant.factor[2]' यह तुलना करता है कि "XL" "L" से बड़ा है या नहीं, जिसका परिणाम TRUE आता है।
बधाई हो
बधाई हो, आप इस ट्यूटोरियल के अंत तक पहुँच गए हैं!
इस ट्यूटोरियल में, आपने R में factor फ़ंक्शन—उदाहरण सहित—उसकी संरचना, ऑर्डर लेवल्स, लेवल्स का नाम बदलना, और अंत में श्रेणीबद्ध मानों के क्रम निर्धारण—को कवर किया।
यदि आप R के बारे में और सीखना चाहते हैं, तो DataCamp का Introduction to R कोर्स करें।
हमारा R में फ़ंक्शंस का उपयोग ट्यूटोरियल भी देखें।