我已经在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')