कोर्स
यदि आप हमारा निःशुल्क Intro to R कोर्स करना चाहते हैं, तो यह लिंक है।
Factor Levels
किसी डेटा सेट के साथ काम शुरू करते समय, आप अक्सर देखेंगे कि उसमें विशिष्ट स्तरों (levels) वाले factors शामिल होते हैं। हालांकि, कभी-कभी स्पष्टता या अन्य कारणों से आप इन स्तरों के नाम बदलना चाहेंगे। R यह काम levels() फ़ंक्शन से करने देता है:
levels(factor_vector) <- c("name1", "name2",...)
एक अच्छा उदाहरण किसी सर्वे से मिला कच्चा डेटा है। लगभग हर प्रश्नावली में एक सामान्य प्रश्न उत्तरदाता का लिंग होता है। यहाँ, सरलता के लिए, केवल दो श्रेणियाँ दर्ज की गईं, "M" और "F"। (आम तौर पर सर्वे डेटा में आपको अधिक श्रेणियों की आवश्यकता होती है; किसी भी स्थिति में, श्रेणीबद्ध डेटा को संग्रहीत करने के लिए आप factor का उपयोग करते हैं।)
survey_vector <- c("M", "F", "F", "M", "M")
कागज़-कलम से डेटा इकट्ठा करते समय "M" और "F" जैसी संक्षिप्तियों से लिंग दर्ज करना सुविधाजनक हो सकता है, लेकिन डेटा का विश्लेषण करते समय यह भ्रम पैदा कर सकता है। उस समय, आप अक्सर स्पष्टता के लिए factor स्तरों को "M" और "F" के बजाय "Male" और "Female" में बदलना चाहेंगे।
ध्यान रखें: जिन स्तरों को आप असाइन करते हैं, उनका क्रम महत्वपूर्ण है। यदि आप levels(factor_survey_vector) टाइप करते हैं, तो आउटपुट [1] "F" "M" आता है। यदि आप वेक्टर बनाते समय factor के स्तर स्पष्ट रूप से निर्दिष्ट नहीं करते, तो R उन्हें वर्णानुक्रम में असाइन कर देता है। "F" को "Female" और "M" को "Male" से सही ढंग से मैप करने के लिए, स्तरों को इसी क्रम में c("Female", "Male") पर सेट करना चाहिए।
निर्देश
survey_vectorसे एक factor वेक्टर बनाने वाला कोड देखें। अगली निर्देशिका में आपकोfactor_survey_vectorका उपयोग करना है।factor_survey_vectorके factor स्तरों कोc("Female", "Male")में बदलें। यहाँ वेक्टर तत्वों के क्रम का ध्यान रखें।
# no pec
survey_vector <- c("M", "F", "F", "M", "M")
factor_survey_vector <- factor(survey_vector)
# Code to build factor_survey_vector
survey_vector <- c("M", "F", "F", "M", "M")
factor_survey_vector <- factor(survey_vector)
# Specify the levels of factor_survey_vector
levels(factor_survey_vector) <-
factor_survey_vector
# Code to build factor_survey_vector
survey_vector <- c("M", "F", "F", "M", "M")
factor_survey_vector <- factor(survey_vector)
# Specify the levels of factor_survey_vector
levels(factor_survey_vector) <- c("Female", "Male")
factor_survey_vector
msg = "Do not change the definition of survey_vector!" test_object("survey_vector", undefined_msg = msg, incorrect_msg = msg) msg = "Do not change or remove the code to create the factor vector." test_function("factor", "x", not_called_msg = msg, incorrect_msg = msg) # MC-note: ideally would want to test assign operator <-, and have it highlight whole line. # MC-note: or negate this test_student_typed, to highlight where they type this incorrect phrase # test_student_typed('c("Male", "Female")') test_object("factor_survey_vector", eq_condition = "equal", incorrect_msg = paste("Did you assign the correct factor levels to factor_survey_vector? Use levels(factor_survey_vector) <- c(\"Female\", \"Male\"). Remember that R is case sensitive!")) success_msg("Wonderful! Proceed to the next exercise.")
ध्यान दें कि आपको factor स्तर किस क्रम में टाइप करने हैं। संकेत: levels(factor_survey_vector) टाइप करते समय प्रिंट हुए स्तरों के क्रम को देखें।
किसी Factor का सारांश
इस कोर्स के बाद, R में आपके पसंदीदा फ़ंक्शंस में से एक summary() होगा। यह किसी वैरिएबल की सामग्री का त्वरित अवलोकन देता है:
summary(my_var)
हमारे सर्वे पर लौटते हुए, आप जानना चाहेंगे कि आपके अध्ययन में कितनी "Male" प्रतिक्रियाएँ हैं और कितनी "Female" प्रतिक्रियाएँ। summary() फ़ंक्शन इस प्रश्न का उत्तर देता है।
निर्देश
survey_vector और factor_survey_vector, दोनों का summary() प्राप्त करें। दोनों वेक्टरों के परिणामों की व्याख्या करें। क्या इस मामले में दोनों समान रूप से उपयोगी हैं?
# Build factor_survey_vector with clean levels
survey_vector <- c("M", "F", "F", "M", "M")
factor_survey_vector <- factor(survey_vector)
levels(factor_survey_vector) <- c("Female", "Male")
factor_survey_vector
# Generate summary for survey_vector
# Generate summary for factor_survey_vector
# Build factor_survey_vector with clean levels
survey_vector <- c("M", "F", "F", "M", "M")
factor_survey_vector <- factor(survey_vector)
levels(factor_survey_vector) <- c("Female", "Male")
factor_survey_vector
# Generate summary for survey_vector
summary(survey_vector)
# Generate summary for factor_survey_vector
summary(factor_survey_vector)
msg = "Do not change anything about the first few lines that define survey_vector and factor_survey_vector." test_object("survey_vector", undefined_msg = msg, incorrect_msg = msg) test_object("factor_survey_vector", eq_condition = "equal", undefined_msg = msg, incorrect_msg = msg) msg <- "Have you correctly used summary() to generate a summary for %s?" test_output_contains("summary(survey_vector)", incorrect_msg = sprintf(msg, "survey_vector")) test_output_contains("summary(factor_survey_vector)", incorrect_msg = sprintf(msg, "factor_survey_vector")) success_msg("Nice! Have a look at the output. The fact that you identified \"Male\" and \"Female\" as factor levels in factor_survey_vector enables R to show the number of elements for each category.")
survey_vector और factor_survey_vector दोनों पर summary() फ़ंक्शन कॉल करें, बस इतना ही!
क्रमबद्ध Factors
क्योंकि "Male" और "Female" बिना क्रम (या नाममात्र) वाले factor स्तर हैं, R एक चेतावनी संदेश देता है, जो बताता है कि greater-than ऑपरेटर का कोई अर्थ नहीं है। जैसा कि पहले देखा, ऐसे factors के स्तरों को R समान मान देता है।
लेकिन यह हमेशा ऐसा नहीं होता! कभी-कभी आप ऐसे factors के साथ भी काम करेंगे जिनकी श्रेणियों के बीच स्वाभाविक क्रम होता है। ऐसी स्थिति में, यह सुनिश्चित करना जरूरी है कि हम यह जानकारी R को दें...
मान लीजिए आप पाँच डेटा विश्लेषकों की एक अनुसंधान टीम का नेतृत्व कर रहे हैं और आप उनका प्रदर्शन आंकना चाहते हैं। इसके लिए, आप उनकी गति को ट्रैक करते हैं, प्रत्येक विश्लेषक का आकलन "slow", "medium" या "fast" के रूप में करते हैं, और परिणामों को speed_vector में सहेजते हैं।
निर्देश
पहले चरण के रूप में, speed_vector को 5 प्रविष्टियों वाले एक वेक्टर से असाइन करें, प्रत्येक विश्लेषक के लिए एक। प्रत्येक प्रविष्टि "slow", "medium", या "fast" में से एक होनी चाहिए। नीचे दी गई सूची का उपयोग करें:
- विश्लेषक 1 medium है,
- विश्लेषक 2 slow है,
- विश्लेषक 3 slow है,
- विश्लेषक 4 medium है और
- विश्लेषक 5 fast है।
अभी इन्हें factors के रूप में निर्दिष्ट करने की ज़रूरत नहीं है।
# Create speed_vector
speed_vector <-
# Create speed_vector
speed_vector <- c("medium", "slow", "slow", "medium", "fast")
test_object("speed_vector",
incorrect_msg = "speed_vector should be a vector with 5 entries, one for each analyst's speed rating. Don't use capital letters; R is case sensitive!") success_msg("A job well done! Continue to the next exercise.")
"slow", "medium", या "fast" वाले character स्ट्रिंग्स का एक वेक्टर speed_vector को असाइन करें।
यदि आप इस कोर्स से और सीखना चाहते हैं, तो यह लिंक है।
हमारा Factors in R Tutorial देखें।