दिलचस्प पोस्ट
कैसे पता चलेगा कि मैं एंड्रॉइड पर कॉल में हूं या नहीं? जेपीए @ एंटीटी के अंदर बीन इंजेक्शन क्या मैं HTML5 के उपयोग से <<inside> एक <बटन> तत्व घोंसला कर सकता हूं? सी + + स्प्रिंटफ़ के बराबर? स्मृति प्रबंधन / आकार एन एमबी के वेक्टर आवंटित नहीं कर सकता git खींचें, जबकि git निर्देशिका में नहीं MVC5 के साथ async का उपयोग करने का क्या लाभ है? 8 सदस्यों की सूची में LINQ विभाजन सूची आईओएस स्विफ्ट ऐप के पृष्ठभूमि दृश्य के लिए ढाल कैसे लागू करें जावा प्राइमिटिव्स क्या ढेर या ढेर पर जाते हैं? तीन। लाइन्सबासिक सामग्री का उपयोग कर लाइनों की मोटाई जावा में देरी कैसे करें? TextInput पर फोकस होने पर कीबोर्ड को पीछे से कैसे विंडो पर से-आउट करने के लिए कैसे करें? एनजी-ऐप बनाम डेटा-एनजी-एप, अंतर क्या है? विंडोज के लिए सबसे अच्छा मुफ्त सी + + प्रोफाइलर क्या है?

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

मेरा 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 में क्या शामिल है। समस्या क्या है?

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

आप यह चेतावनी क्यों प्राप्त कर रहे हैं, यह 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 को बताया जा रहा है कि एक से अधिक मूल्य होने पर क्या करना है: मूल्यों का योग वापस करें