दिलचस्प पोस्ट
पीएचपी में चयन बॉक्स के कई चयनित मान कैसे प्राप्त करें? सी के लिए अनुशंसित जीसीसी चेतावनी विकल्प कैसे क्लासिक एएसपी पर एक parametrized एसक्यूएल क्वेरी बनाने के लिए? मानक "उत्पादन" या "विकास" की तुलना में अलग डेटाबेस पर रेल माइग्रेशन का उपयोग करना स्ट्रिंग को डेटटाइम में परिवर्तित करना मैं WPF में टाइमर कैसे बनाऊं? एंड्रॉइड: एचटीटीपी क्लाइंट अनुरोध का स्टेटस-कोड कैसे प्राप्त होता है स्टोर और फिर से लोड करें matplotlib.pyplot वस्तु रेग। एंड्रॉइड स्टूडियो पर सीमके के माध्यम से मूल सी कोड में ओपनसीवी को जोड़ना टेम्पलेट स्पेशलाइजेशन और सक्षम_आईफ़ जावा में बाइट और चार रूपांतरण मैं Django ModelForm में विदेशी कुंजी विकल्प कैसे फ़िल्टर करूं? क्या अस्थायी आवधिक संकलक नहीं है? जेएएसएबी नाममार्ग और उपसर्ग के साथ संयुक्त स्प्रिंग एमवीसी 404 के साथ क्यों प्रतिक्रिया करता है और रिपोर्ट "डिस्पैचर सर्कल में यूआरआई के अनुरोध के लिए कोई मानचित्रण नहीं मिला ?"

लंबे समय तक चौड़े स्वरूप से काम नहीं करना

मेरा df इस तरह दिखता है:

 Id Task Type Freq 3 1 A 2 3 1 B 3 3 2 A 3 3 2 B 0 4 1 A 3 4 1 B 3 4 2 A 1 4 2 B 3 

मैं आईडी द्वारा पुनर्गठन और प्राप्त करना चाहता हूं:

 Id AB … Z 3 5 3 4 4 6 

मैंने कोशिश की:

 df_wide <- dcast(df, Id + Task ~ Type, value.var="Freq") 

और त्रुटि मिली:

 Aggregation function missing: defaulting to length 

मुझे पता नहीं लगा कि fun.aggregate में क्या शामिल है। समस्या क्या है?

Solutions Collecting From Web of "लंबे समय तक चौड़े स्वरूप से काम नहीं करना"

आप यह चेतावनी क्यों प्राप्त कर रहे हैं, यह fun.aggregate के विवरण में है। fun.aggregate (देखिए ?dcast ):

एग्रीगेशन फ़ंक्शन की आवश्यकता होती है अगर वेरिएबल प्रत्येक आउटपुट सेल के लिए एक एकल अवलोकन की पहचान नहीं करते हैं यदि जरूरत पड़ने पर निर्दिष्ट नहीं है, तो लंबाई के साथ डिफ़ॉल्ट (एक संदेश के साथ)

इसलिए, एक समूह समारोह की आवश्यकता होती है, जब व्यापक डेटाफ्रेम में एक स्थान के लिए एक से अधिक मान होता है।

आपके डेटा के आधार पर एक स्पष्टीकरण:

जब आप dcast(df, Id + Task ~ Type, value.var="Freq") करते हैं तो आप प्राप्त करते हैं:

  Id Task AB 1 3 1 2 3 2 3 2 3 0 3 4 1 3 3 4 4 2 1 3 

जो तर्कसंगत है क्योंकि प्रत्येक Id , Task और Type प्रत्येक संयोजन के लिए Freq में केवल मूल्य है। लेकिन जब आप dcast(df, Id ~ Type, value.var="Freq") करते हैं तो आपको यह मिलता है (एक चेतावनी संदेश भी शामिल है):

 Aggregation function missing: defaulting to length Id AB 1 3 2 2 2 4 2 2 

अब, अपने डेटा के शीर्ष भाग पर वापस देख रहे हैं:

 Id Task Type Freq 3 1 A 2 3 1 B 3 3 2 A 3 3 2 B 0 

आप देखेंगे कि यह मामला क्यों है। Id और Type के प्रत्येक संयोजन के लिए Freq (आईडी 3: 2 और 3 लिए A और 3 और टाइप B लिए 0 ) के लिए दो मान हैं, जबकि आप केवल इस वैल्यू में एक वैल्यू डाल सकते हैं, जिस type प्रत्येक मान के लिए विस्तृत डेटाफ्रेम में । इसलिए dcast इन मानों को एक मूल्य में एकत्रित करना चाहता है। डिफ़ॉल्ट एकत्रीकरण फ़ंक्शन length , लेकिन आप fun.aggregate साथ निर्दिष्ट करके sum , mean , sd या एक कस्टम फ़ंक्शन जैसे अन्य समुच्चय कार्यों का उपयोग कर सकते हैं।

उदाहरण के लिए, fun.aggregate = sum साथ। fun.aggregate = sum आपको मिलता है:

  Id AB 1 3 5 3 2 4 4 6 

अब कोई चेतावनी नहीं है क्योंकि dcast को बताया जा रहा है कि एक से अधिक मूल्य होने पर क्या करना है: मूल्यों का योग वापस करें