आर में कैसे ठीक करें: तर्क "नहीं" गायब है, डिफ़ॉल्ट के बिना


R में आपके सामने एक त्रुटि आ सकती है:

 Error in ifelse(df$team == "B", "Boston"): 
  argument "no" is missing, with no default

यह त्रुटि तब होती है जब आप R में ifelse() फ़ंक्शन का उपयोग करते हैं लेकिन उस मान को निर्दिष्ट करने के लिए तीसरा तर्क शामिल करना भूल जाते हैं जिसे तर्क परीक्षण गलत होने पर लौटाया जाना चाहिए।

यह ट्यूटोरियल सटीक रूप से बताता है कि इस त्रुटि को कैसे ठीक किया जाए।

त्रुटि को पुन: उत्पन्न कैसे करें

मान लीजिए कि हमारे पास R में निम्नलिखित डेटा फ़्रेम है:

 #create data frame
df <- data. frame (team=c('B', 'B', 'B', 'B', 'C', 'C', 'C', 'D'),
                 points=c(12, 22, 35, 34, 20, 28, 30, 18),
                 assists=c(4, 10, 11, 12, 12, 8, 6, 10))

#view data frame
df

  team points assists
1 B 12 4
2 B 22 10
3 B 35 11
4 B 34 12
5 C 20 12
6 C 28 8
7 C 30 6
8 D 18 10

अब मान लीजिए कि हम शहर नामक एक नया कॉलम बनाने के लिए ifelse() फ़ंक्शन का उपयोग करने का प्रयास करते हैं जिसमें “बोस्टन” शामिल है यदि टीम कॉलम में मान “बी” के बराबर है:

 #attempt to create new column with team city
df$city <- ifelse(df$team == ' B ', ' Boston ')

Error in ifelse(df$team == "B", "Boston"): 
  argument "no" is missing, with no default

हमें एक त्रुटि प्राप्त हो रही है क्योंकि हम ifelse() फ़ंक्शन के लिए तीसरा तर्क प्रदान करने में विफल रहे हैं जो उस मान को निर्दिष्ट करता है जिसे हमें वापस करना चाहिए यदि टीम कॉलम में मान ‘बी’ के बराबर नहीं है।

त्रुटि को कैसे ठीक करें

इस त्रुटि को ठीक करने का तरीका केवल ifelse() फ़ंक्शन के लिए एक तीसरा तर्क प्रदान करना है जो उस मान को निर्दिष्ट करता है जिसे हमें वापस करना चाहिए यदि टीम कॉलम में मान ‘बी’ के बराबर नहीं है।

निम्नलिखित सिंटैक्स दिखाता है कि यह कैसे करना है:

 #create new column with team city
df$city <- ifelse(df$team == ' B ', ' Boston ', ' Other ')

#view updated data frame
df

  team points assists city
1 B 12 4 Boston
2 B 22 10 Boston
3 B 35 11 Boston
4 B 34 12 Boston
5 C 20 12 Other
6 C 28 8 Other
7 C 30 6 Other
8 D 18 10 Other

ध्यान दें कि इस बार हमें कोई त्रुटि नहीं मिल रही है क्योंकि हमने ifelse() फ़ंक्शन को तीसरा तर्क प्रदान किया है।

इस उदाहरण में, ifelse() फ़ंक्शन “बोस्टन” मान लौटाता है यदि टीम कॉलम में मान “बी” के बराबर है या यदि टीम कॉलम में मान कुछ और है तो मान “अन्य” देता है।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि आर में अन्य सामान्य त्रुटियों को कैसे ठीक किया जाए:

आर में कैसे ठीक करें: एनएएस को जबरदस्ती पेश किया गया
आर में मरम्मत कैसे करें: सूचकांक सीमा से बाहर
आर में कैसे ठीक करें: लंबी वस्तु की लंबाई छोटी वस्तु की लंबाई का गुणज नहीं है
आर में मरम्मत कैसे करें: प्रतिस्थापित किए जाने वाले तत्वों की संख्या प्रतिस्थापन लंबाई की गुणज नहीं है

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

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