Learn

`group_by()` can also be used with the dplyr function `mutate()` to add columns to a data frame that involve per-group metrics.

Consider the same educational technology company’s `enrollments` table from the previous exercise:

user_id course quiz_score
1234 learn_r 80
1234 learn_python 95
4567 learn_r 90
4567 learn_python 55

You want to add a new column to the data frame that stores the difference between a row’s `quiz_score` and the average `quiz_score` for that row’s `course`. To add the column:

``````enrollments %>%
group_by(course) %>%
mutate(diff_from_course_mean = quiz_score - mean(quiz_score))``````
• `group_by()` groups the data frame by course into two groups: `learn-r` and `learn-python`
• `mutate()` will add a new column `diff_from_course_mean` which is calculated as the difference between a row’s individual `quiz_score` and the `mean(quiz_score)` for that row’s group (course)

The resulting data frame would look like this:

user_id course quiz_score diff_from_course_mean
1234 learn_r 80 -5
1234 learn_python 95 20
4567 learn_r 90 5
4567 learn_python 55 -20
• The average `quiz_score` for the `learn-r` course is `85`, so `diff_from_course_mean` is calculated as `quiz_score - 85` for all the rows of `enrollments` with a value of `learn-r` in the `course` column.
• The average `quiz_score` for the `learn-python` course is `75`, so `diff_from_course_mean` is calculated as `quiz_score - 75` for all the rows of `enrollments` with a value of `learn-python` in the `course` column.

### Instructions

1.

You want to be able to tell how expensive each order is compared to the average `price` of orders with the same `shoe_type`.

Group `orders` by `shoe_type` and create a new column named `diff_from_shoe_type_mean` that stores the difference in price between an orders `price` and the average `price` of orders with the same `shoe_type`. Save the result to `diff_from_mean`, and view it.

Don’t forget to include `na.rm = TRUE` as an argument in the summary function you call!