2015-05-26 2 views
13

मैंने एसओ पर कई बार इस reshape2 को देखा है लेकिन मेरी विशेष समस्या का समाधान नहीं देखा है;आर reshape2 'एग्रीगेशन फ़ंक्शन गायब: लम्बाई से डिफ़ॉल्ट'

मेरे पास ऐसा डेटासेट है;

head(data) 
student test score 
Adam  Exam1  80 
Adam  Exam2  90 
John  Exam1  70 
John  Exam2  60 

मैं इसे इस तरह दिखने वाले विस्तृत प्रारूप में डालने की कोशिश कर रहा हूं;

Student Exam1 Exam2 ........ ExamX 
Adam   80  90 
John   70  60 

का उपयोग कर;

dcast(data,student~test,value.var='score') 

लेकिन डेटा इस तरह कुछ दिख रहा है;

Student Exam1  Exam2 
Adam  0   0 
John  0   1 

इस त्रुटि के साथ;

Aggregation function missing: defaulting to length 

कोई विचार यह क्यों इन सभी मानों को (0 या 1) में बदल रहा है?

+1

आपको अनुक्रम कॉलम प्रदान करने की आवश्यकता है। लेकिन, उदाहरण के आधार पर, यह 'dcast (डेटा, छात्र ~ परीक्षण, value.var =' score ') के बावजूद काम करता है' डुप्लिकेट पंक्तियों के साथ एक उदाहरण प्रदान करें – akrun

+6

यह कोई त्रुटि नहीं है। यह आपको यह बताने की चेतावनी है कि चूंकि आपने 'fun.aggregate' (उदाहरण के लिए, 'fun.aggregate = mean') के लिए कोई मान प्रदान नहीं किया है, यह लंबाई को वापस करने के लिए डिफ़ॉल्ट है, जो पंक्तियों की संख्या की गणना है श्रेणियों के संयोजन में गिर रहा है। मुझे आपके नमूना डेटा में 'job_type' दिखाई नहीं देता है। क्या आप 'dcast (डेटा, छात्र ~ परीक्षण, value.var = 'score') चाहते थे? – eipi10

+2

हाय, मुझे अब भी इसी तरह की समस्या है, और मुझे नहीं पता कि इसे कैसे ठीक किया जाए। क्या समस्या थी, कि 'value.var' गलत टाइप किया गया था? – Bobesh

उत्तर

9

@akrun के लिए धन्यवाद जिन्होंने इसे इंगित किया।

ठीक है, वहाँ एक उच्च मौका अपने डेटा डुप्लिकेट पंक्ति इस तरह या तो देखो कि है कि है:

student test score 
Adam  Exam1  80 
Adam  Exam1  85 
Adam  Exam2  90 
John  Exam1  70 
John  Exam2  60 

या इस तरह: dcast(data, student + class ~ test, value.var='score')

:

student class  test score 
Adam  Biology Exam1  80 
Adam  Theology Exam1  85 
Adam  Theology Exam2  90 
John  Biology Exam1  70 
John  Theology Exam2  60 

जब आप इसे इस तरह डाली

संबंधित मुद्दे