आर में त्रुटियों की व्याख्या: 'अधिकतम' कारकों के लिए महत्वपूर्ण नहीं है


किसी न किसी बिंदु पर, आपको R में निम्नलिखित त्रुटि का सामना करना पड़ सकता है:

 'max' not meaningful for factors

इसका सीधा सा मतलब है कि आप एक वेरिएबल का “अधिकतम” लेने का प्रयास कर रहे हैं जो क्लास फ़ैक्टर से संबंधित है।

उदाहरण के लिए, यदि हम निम्नलिखित वेक्टर को अधिकतम लेने का प्रयास करते हैं तो यह त्रुटि उत्पन्न होती है:

 #create a vector of class vector
factor_vector <- as.factor(c(1, 7, 12, 14, 15))

#attempt to find max value in the vector
max(factor_vector)

#Error in Summary.factor(1:5, na.rm = FALSE): 
# 'max' not meaningful for factors

परिभाषा के अनुसार, एक कारक वेक्टर के मान नाममात्र वर्ग के होते हैं, जिसका अर्थ है कि मानों का कोई सार्थक क्रम नहीं है। इसलिए खोजने के लिए कोई “अधिकतम” मान नहीं है।

किसी कारक वेक्टर का अधिकतम पता लगाने का एक सरल उपाय यह है कि इसे केवल एक कैरेक्टर वेक्टर में और फिर एक संख्या वेक्टर में परिवर्तित किया जाए:

 #convert factor vector to numeric vector and find the max value
new_vector <- as.numeric(as.character(factor_vector))
max(new_vector)

#[1] 15

यदि आपके कारक वेक्टर में केवल कारक नाम शामिल हैं, तो कारक वेक्टर को संख्यात्मक वेक्टर में परिवर्तित करने के बाद भी अधिकतम मान प्राप्त करना संभव नहीं है, क्योंकि कारकों की सूची का “अधिकतम” खोजने का कोई मतलब नहीं है। names.

 #create factor vector with names of factors
factor_vector <- as.factor(c("first", "second", "third"))

#attempt to convert factor vector into numeric vector and find max value
new_vector <- as.numeric(as.character(factor_vector))
max(new_vector)

#Warning message:
#NAs introduced by coercion 
#[1] NA

यह ध्यान दिया जाना चाहिए कि आर समस्याओं का सामना किए बिना अधिकतम संख्या वाले वैक्टर, दिनांक वैक्टर और चरित्र वैक्टर पा सकता है:

 numeric_vector <- c(1, 2, 12, 14)
max(numeric_vector)

#[1] 14

character_vector <- c("a", "b", "f")
max(character_vector)

#[1] “f”

date_vector <- as.Date(c("2019-01-01", "2019-03-05", "2019-03-04"))
max(date_vector)

#[1] "2019-03-05"

इसलिए यदि आप किसी वेक्टर में अधिकतम मान खोजने का प्रयास कर रहे हैं, तो सुनिश्चित करें कि आपका वेक्टर Factor प्रकार का नहीं है।

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *