I want to calculate `mean` (or any other summary statistics of length one, e.g. `min``max``length``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 `mean`

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 1,736 views

## 1 answer to this question.

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)`
• 6,370 points

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

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

## How to filter a data frame with dplyr and tidy evaluation in R?

Requires the use of map_df to run each model, ...READ MORE

## How to forecast season and trend of data using STL and ARIMA in R?

You can use the forecast.stl function for the ...READ MORE

## How can I calculate mean per group in a data.frame?

You can use aggregate function for calculating ...READ MORE

## How to write a custom function which will replace all the missing values in a vector with the mean of values in R?

Consider this vector: a<-c(1,2,3,NA,4,5,NA,NA) Write the function to impute ...READ MORE

## Mean of one column with respect to another

Consider the inbuilt iris dataset in R. Use ...READ MORE

## Big Data transformations with R

Dear Koushik, Hope you are doing great. You can ...READ MORE

+1 vote