How to calculate group mean and assign it to new data in R

0 votes

I want to calculate mean (or any other summary statistics of length one, e.g. minmaxlengthsum) of a numeric variable ("value") within each level of a grouping variable ("group").

The summary statistic should be assigned to a new variable which has the same length as the original data. That is, each row of the original data should have a value corresponding to the current group value - the data set should not be collapsed to one row per group. For example, consider group mean

down votefaI want to calculate mean (or any other summary statistics of length one, e.g. minmaxlength, sum) of a numeric variable ("value") within each level of a grouping variable ("group")The summary statistic should be assigned to a new variable which has the same length as the original data. That is, each row of the original data should have a value corresponding to the current group value - the data set should not be collapsed to one row per group. For example, consider group 

Before

id  group  value
1   a      10
2   a      20
3   b      100
4   b      200

After

id  group  value  grp.mean.values
1   a      10     15
2   a      20     15
3   b      100    150
4   b      200    150
Jun 27, 2018 in Data Analytics by CodingByHeart77
• 3,750 points
2,472 views

1 answer to this question.

0 votes

You can use something like this:

df$grp.mean.values <- ave(df$value, df$group)

If you want to use ave to calculate something else per group, you need to specify FUN = your-desired-function, e.g. FUN = min:

df$grp.min <- ave(df$value, df$group, FUN = min)
answered Jun 27, 2018 by Sahiti
• 6,370 points

Related Questions In Data Analytics

0 votes
1 answer

How to find out the sum/mean for multiple variables per group in R?

You can use the reshape2 package for ...READ MORE

answered Apr 12, 2018 in Data Analytics by DataKing99
• 8,250 points
4,591 views
0 votes
1 answer