chattrat423 chattrat423 - 2 months ago 49
R Question

R reshape2 'Aggregation function missing: defaulting to length'

I have seen this reshape2 several times on SO but haven't seen a solution to my particular problem;

I have a dataset like this;

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


I am trying to cast this to a wide format that looks like this;

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


using;

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


but the data ends up looking like something like this;

Student Exam1 Exam2
Adam 0 0
John 0 1


with this error;

Aggregation function missing: defaulting to length


Any ideas why it is changing all of these values to a (0 or 1)?

Answer

Thanks to @akrun who pointed it out.

Well, there's a high chance that your data has duplicate row that look either like this:

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

Or like this:

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

When you cast it like this: dcast(data, student + class ~ test, value.var='score')

Comments