R reshape2'聚合函数丢失:默认为长度'

cha*_*423 19 r reshape2

我已经在SO上多次看过这次重塑2但是没有找到解决我特定问题的方法;

我有这样的数据集;

head(data)
student    test    score
Adam      Exam1     80
Adam      Exam2     90
John      Exam1     70
John      Exam2     60
Run Code Online (Sandbox Code Playgroud)

我试图将其转换为看起来像这样的宽格式;

Student    Exam1    Exam2 ........ ExamX
Adam         80       90
John         70       60
Run Code Online (Sandbox Code Playgroud)

使用;

dcast(data,student~test,value.var='score')
Run Code Online (Sandbox Code Playgroud)

但数据最终看起来像这样的东西;

Student    Exam1     Exam2
Adam        0          0
John        0          1
Run Code Online (Sandbox Code Playgroud)

有这个错误;

Aggregation function missing: defaulting to length
Run Code Online (Sandbox Code Playgroud)

任何想法为什么它将所有这些值更改为(0或1)?

Jel*_*ina 17

感谢@akrun指出了这一点.

那么,您的数据很可能有重复的行,看起来像这样:

student    test    score
Adam      Exam1     80
Adam      Exam1     85
Adam      Exam2     90
John      Exam1     70
John      Exam2     60
Run Code Online (Sandbox Code Playgroud)

或者像这样:

student   class     test    score
Adam      Biology   Exam1     80
Adam      Theology  Exam1     85
Adam      Theology  Exam2     90
John      Biology   Exam1     70
John      Theology  Exam2     60
Run Code Online (Sandbox Code Playgroud)

当你像这样投射: dcast(data, student + class ~ test, value.var='score')

  • 仍然收到与上述相同的错误。我听了你的建议。有什么想法吗? (3认同)
  • 我尝试了dcast(data,student〜test,value.var ='score'),但是它给出了相同的错误和0-1矩阵。 (2认同)