कैसे ठीक करें: fun(newx[, i],…) में त्रुटि: तर्क प्रकार ' (वर्ण)
R में आपके सामने एक त्रुटि आ सकती है:
Error in sum(x): invalid 'type' (character) of argument
यह त्रुटि तब होती है जब आप किसी कैरेक्टर वेक्टर पर गणितीय ऑपरेशन (जैसे योग, औसत, संख्या आदि लेना) करने का प्रयास करते हैं।
यह ट्यूटोरियल बताता है कि व्यवहार में इस त्रुटि को कैसे हल किया जाए।
त्रुटि को पुन: उत्पन्न कैसे करें
मान लीजिए कि हम R में निम्नलिखित डेटा फ़्रेम बनाते हैं:
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'),
points=c(10, 12, 15, 20, 26, 25),
rebounds=c(7, 8, 8, 14, 10, 12))
#view data frame
df
team points rebounds
1 to 10 7
2 to 12 8
3 to 15 8
4 B 20 14
5 B 26 10
6 B 25 12
अब मान लीजिए कि हम “टीम” कॉलम के योग की गणना करने का प्रयास करते हैं:
#attempt to calculate sum of values in 'team' column
sum(df$team)
Error in sum(df$team): invalid 'type' (character) of argument
हमें एक त्रुटि प्राप्त होती है क्योंकि “टीम” कॉलम एक वर्ण कॉलम है।
हम क्लास() फ़ंक्शन का उपयोग करके इसकी पुष्टि कर सकते हैं:
#view class of 'team' column
class(df$team)
[1] “character”
त्रुटि को कैसे ठीक करें
इस त्रुटि से बचने का तरीका केवल संख्यात्मक वैक्टर के साथ गणितीय संक्रियाओं का उपयोग करना है।
उदाहरण के लिए, हम ‘अंक’ कॉलम में मानों के योग की गणना करने के लिए sum() फ़ंक्शन का उपयोग कर सकते हैं:
#calculate sum of values in 'points' column
sum(df$points)
[1] 108
हम टीम द्वारा समूहीकृत बिंदु मानों के योग की भी गणना कर सकते हैं:
#calculate sum of points, grouped by team
aggregate(points ~ team, df, sum)
team points
1 to 37
2 B 71
हम टीम द्वारा समूहीकृत अंकों और रिबाउंड मूल्यों के योग की गणना भी कर सकते हैं:
#calculate sum of points and sum of rebounds, grouped by team
aggregate(.~team, df, sum)
team points rebounds
1 A 37 23
2 B 71 36
ध्यान दें कि हमें इनमें से किसी भी ऑपरेशन में कोई त्रुटि नहीं मिलती है क्योंकि हम केवल संख्यात्मक चर के योग की गणना करने का प्रयास कर रहे हैं।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि आर में अन्य सामान्य त्रुटियों को कैसे ठीक किया जाए:
कैसे ठीक करें: शर्त की लंबाई > 1 है और केवल पहला तत्व उपयोग किया जाएगा
कैसे ठीक करें: बाइनरी ऑपरेटर का गैर-संख्यात्मक तर्क
कैसे ठीक करें: dim(X) की लंबाई धनात्मक होनी चाहिए
कैसे ठीक करें: अप्रयुक्त तर्कों को चुनने में त्रुटि