As a rule, for this I would use a rather simple long reformatted format for you, but it seems to change its aggregation variables. I had work on a mechanical Turk, which I did in three repetitions. I want MTurk1, Mturk2, MTurk3 to be responsible for their own variables in the data frame, but uniquely determined by the field that I entered with the task, so that I can compare them with each other with the function later.
Current format:
> head(mturk)
AssignmentStatus Input.id Input.State Answer.Q1thing
1 Approved 134231 NY Myguess
2 Approved 134231 NY Myguess
3 Approved 134231 NY BadGuess
4 Submitted 134812 CA Another
5 Approved 134812 CA Another
6 Approved 134812 CA Another
I wish it became
Input.id Input.State Answer.Q1thing.1 Answer.Q1thing.2 Answer.Q1thing.3 AssignmentStatus.1 AssignmentStatus.2 AssignmentStatus.3
134231 NY Myguess Myguess BadGuess Approved Approved Approved
134812 CA Another Another Another Submitted Approved Approved
or ideally, if there is a variable that can change the column names in the operation ....
Id State Answer1 Answer2 Answer3 Status1 Status2 Status3
134231 NY Myguess Myguess BadGuess Approved Approved Approved
134812 CA Another Another Another Submitted Approved Approved
dat <- reshape(mturk, timevar="Answer.Q1thing", idvar=c("Input.id", "Input.state"), direction="wide")
, long-to-wide , , --- , - , 't "MyGuess" "BadGuess" "Another", "Answer.X", . - , , , .
, :