I discovered a new, very useful, R function yesterday: ave.
This is what it does: “Subsets of ‘x’ are averaged, where each subset consist of those observations with the same factor levels.”
But interestingly, you can use any function other than average. The output of that function is set against each observation.
I wanted to, for example, stick sub-group ranks to each observation. I can think of several situations where this would be of great value!