कैसे ठीक करें: n() में त्रुटि: इस फ़ंक्शन को सीधे कॉल नहीं किया जाना चाहिए
R में आपके सामने एक त्रुटि आ सकती है:
Error in n(): This function should not be called directly
यह त्रुटि आमतौर पर तब होती है जब आप dplyr पैकेज के n() फ़ंक्शन का उपयोग करने का प्रयास करते हैं, लेकिन plyr पैकेज dplyr पैकेज के बाद लोड होता है।
यह ट्यूटोरियल सटीक रूप से बताता है कि इस त्रुटि को कैसे ठीक किया जाए।
त्रुटि को पुन: उत्पन्न कैसे करें
मान लीजिए कि हमारे पास R में निम्नलिखित डेटा फ़्रेम है:
#define data frame
df <- data. frame (team=rep(c('A', 'B'), each= 5 ),
points=c(2, 4, 6, 8, 10, 12, 14, 16, 18, 20),
assists=c(4, 7, 11, 16, 22, 29, 38, 49, 63, 80))
#view data frame
df
team points assists
1 to 2 4
2 to 4 7
3 to 6 11
4 to 8 16
5 to 10 22
6 B 12 29
7 B 14 38
8 B 16 49
9 B 18 63
10 B 20 80
अब मान लीजिए कि हम टीम द्वारा समूहीकृत पंक्तियों की संख्या की गणना करने के लिए dplyr के सारांश() फ़ंक्शन का उपयोग करने का प्रयास करते हैं:
library (dplyr)
library (plyr)
#attempt to count rows by team
df %>%
group_by(team) %>%
summarize(count = n())
Error in n(): This function should not be called directly
हमें एक त्रुटि प्राप्त हो रही है क्योंकि हमने dplyr पैकेज के बाद plyr पैकेज लोड किया है, जो समस्याएँ पैदा कर रहा है।
त्रुटि को कैसे ठीक करें
इस त्रुटि को ठीक करने का तरीका बस dplyr:summarize का उपयोग करना है ताकि R को ठीक से पता चल सके कि आप किस पैकेज से सारांश फ़ंक्शन का उपयोग करना चाहते हैं:
library (dplyr)
library (plyr)
#count rows by team
df %>%
group_by(team) %>%
dplyr::summarize(count = n())
# A tibble: 2 x 2
team count
1 to 5
2 B 5
ध्यान दें कि इस बार हम बिना किसी त्रुटि के टीम द्वारा समूहीकृत पंक्तियों की संख्या की गणना करने में सक्षम हैं क्योंकि हमने सारांश निष्पादित करने के लिए dplyr::summarize का उपयोग किया है।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि आर में अन्य सामान्य त्रुटियों को कैसे हल किया जाए:
R में कैसे ठीक करें: as.Date.numeric(x) में त्रुटि: “मूल” प्रदान किया जाना चाहिए
कैसे ठीक करें: स्ट्रिपचार्ट.डिफॉल्ट (x1,…) में त्रुटि: अमान्य प्लॉटिंग विधि
कैसे ठीक करें: eval में त्रुटि (predvars, data, env): ऑब्जेक्ट ‘x’ नहीं मिला