आर में कैसे ठीक करें: एग्रीगेट फ़ंक्शन गायब है, डिफ़ॉल्ट "लंबाई" है
R का उपयोग करते समय आपको एक त्रुटि का सामना करना पड़ सकता है:
Aggregation function missing: defaulting to length
यह त्रुटि तब होती है जब आप डेटा फ़्रेम को लंबे प्रारूप से विस्तृत प्रारूप में परिवर्तित करने के लिए reshape2 पैकेज में dcast फ़ंक्शन का उपयोग करते हैं, लेकिन विस्तृत डेटा फ़्रेम के अलग-अलग कक्षों में एकाधिक मान रखे जा सकते हैं।
निम्नलिखित उदाहरण दिखाता है कि व्यवहार में इस त्रुटि को कैसे ठीक किया जाए।
त्रुटि को पुन: उत्पन्न कैसे करें
मान लीजिए कि हमारे पास आर में निम्नलिखित डेटा फ्रेम है जिसमें विभिन्न उत्पादों की बिक्री के बारे में जानकारी है:
#create data frame
df <- data. frame (store=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
promotion=c('Y', 'Y', 'N', 'N', 'Y', 'Y', 'N', 'N'),
product=c(1, 2, 1, 2, 1, 2, 1, 2),
sales=c(12, 18, 29, 20, 30, 11, 15, 22))
#view data frame
df
store promotion product sales
1 AY 1 12
2 AY 2 18
3 YEAR 1 29
4 YEAR 2 20
5 BY 1 30
6 BY 2 11
7 BN 1 15
8 BN 2 22
अब मान लीजिए कि हम डेटा फ़्रेम को लंबे प्रारूप से विस्तृत प्रारूप में बदलने के लिए dcast फ़ंक्शन का उपयोग करने का प्रयास करते हैं:
library (reshape2)
#convert data frame to wide format
df_wide <- dcast(df, store ~ product, value. var = " sales ")
#view result
df_wide
Aggregation function missing: defaulting to length
store 1 2
1 to 2 2
2 B 2 2
ध्यान दें कि dcast फ़ंक्शन काम करता है लेकिन हमें एग्रीगेट फ़ंक्शन मिसिंग चेतावनी संदेश प्राप्त होता है।
त्रुटि को कैसे ठीक करें
हमें चेतावनी संदेश प्राप्त होने का कारण यह है कि स्टोर और उत्पाद के प्रत्येक संयोजन के लिए, दो संभावित मूल्य हैं जिनका उपयोग हम बिक्री के लिए कर सकते हैं।
उदाहरण के लिए, स्टोर ए और उत्पाद 1 के लिए, बिक्री मूल्य 12 या 29 हो सकता है।
इसलिए dcast फ़ंक्शन अपने एकत्रीकरण फ़ंक्शन के रूप में “लंबाई” पर डिफ़ॉल्ट होता है।
उदाहरण के लिए, बड़ा डेटाबेस हमें बताता है कि स्टोर ए और उत्पाद 1 के लिए कुल 2 बिक्री मूल्य हैं।
यदि आप इसके बजाय किसी भिन्न एकत्रीकरण फ़ंक्शन का उपयोग करना चाहते हैं, तो आप fun.aggregate का उपयोग कर सकते हैं।
उदाहरण के लिए, हम स्टोर और उत्पाद द्वारा बिक्री के योग की गणना करने के लिए निम्नलिखित सिंटैक्स का उपयोग कर सकते हैं:
library (reshape2)
#convert data frame to wide format
df_wide <- dcast(df, store ~ product, value. var = " sales ", fun. aggregate =sum)
#view result
df_wide
store 1 2
1 A 41 38
2 B 45 33
यहां बड़े डेटा फ़्रेम में मानों की व्याख्या करने का तरीका बताया गया है:
- स्टोर A और उत्पाद 1 की बिक्री का योग 41 है।
- स्टोर A और उत्पाद 2 की बिक्री का योग 38 है।
- स्टोर B और उत्पाद 1 की बिक्री का योग 45 है।
- स्टोर B और उत्पाद 2 की बिक्री का योग 33 है।
ध्यान दें कि इस बार हमें कोई चेतावनी संदेश नहीं मिला क्योंकि हमने fun.aggregate तर्क का उपयोग किया था।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि आर में अन्य सामान्य त्रुटियों को कैसे ठीक किया जाए:
आर में कैसे ठीक करें: अप्रत्याशित स्ट्रिंग स्थिरांक
आर में कैसे ठीक करें: एक्सट्रैक्टवर्स में अमान्य टेम्पलेट फॉर्मूला
आर में कैसे ठीक करें: तर्क न तो संख्यात्मक है और न ही तार्किक: वापसी ना