My data.frame looks like this
ID | test | test_result 1 | B | 10 2 | A | 9 3 | A | 11 4 | C | 7 5 | F | 5
And
Another solution using reshape function in base R.
reshape
base
reshape(mydf, direction = 'wide', idvar = 'test', timevar = 'ID', v.names = 'test_result', sep = "_")
EDIT. I see that you have already tried reshape and it took too long. Can you provide more details on your actual data?