2015-05-26 8 views
13

Ich habe diese Umformung2 mehrere Male auf SO gesehen, aber habe keine Lösung für mein spezielles Problem gefunden;R reshape2 'Aggregationsfunktion fehlt: Standard auf Länge'

Ich habe einen Datensatz wie folgt;

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

Ich versuche, dies auf ein breites Format zu werfen, das so aussieht;

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

Verwendung;

aber die Daten enden wie etwas in etwa so;

Student Exam1  Exam2 
Adam  0   0 
John  0   1 

mit diesem Fehler;

Aggregation function missing: defaulting to length 

Irgendwelche Ideen, warum es alle diese Werte auf a (0 oder 1) ändert?

+1

Sie müssen eine Sequenzspalte bereitstellen. Aber, basierend auf dem Beispiel, funktioniert es obwohl 'dcast (Daten, Student ~ Test, value.var = 'score')' Geben Sie ein Beispiel mit doppelten Zeilen – akrun

+6

Es ist kein Fehler. Es ist eine Warnung, um Sie wissen zu lassen, dass, da Sie keinen Wert für 'fun.aggregate' angegeben haben (z. B.' fun.aggregate = mean'), standardmäßig die Länge zurückgegeben wird, die die Anzahl der Zeilen angibt in diese Kombination von Kategorien fallen. Ich sehe 'job_type' in Ihren Beispieldaten nicht. Wollte du 'dcast (Daten, Student ~ Test, value.var = 'score')'? – eipi10

+2

Hi, ich habe jetzt ein ähnliches Problem, und ich weiß nicht, wie ich das beheben kann. War das Problem, dass 'value.var' falsch eingegeben wurde? – Bobesh

Antwort

9

Dank @akrun, die darauf hingewiesen.

Nun, es gibt eine hohe Wahrscheinlichkeit, dass Ihre Daten doppelte Zeile hat, die entweder wie folgt aussehen:

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

Oder wie folgt aus:

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

Wenn Sie es so Stimmen: dcast(data, student + class ~ test, value.var='score')

Verwandte Themen