I have a data frame that contains two types cols - numeric and factor. How can I difference each element with group mean in a new column. I can find group mean with 'aggregate', but I can't extract diff between each element and it's group mean (different lenght).
            Asked
            
        
        
            Active
            
        
            Viewed 53 times
        
    1 Answers
2
            You can easily do it with a basic linear model (I removed the intercept so that the value of each effect is the group mean in the model summary). Let's take the example of data(mtcars), the variable am being your grouping factor and mpg your numeric variable:
mtcars$am <- factor(mtcars$am)
lm(mpg~am-1, mtcars)$resid
The residuals of this model are by definition the difference between the element and its group mean.
 
    
    
        agenis
        
- 8,069
- 5
- 53
- 102
