在 R 中的原始数据框中按组创建新列

Create new column for mean by group in original dataframe in R

我有一个如下所示的数据框:

unit_id  outcome
1        3
1        5
1        4
2        1
2        2
2        3

我知道如何计算每个 unit_id 的平均值。

df <- df %>%
  group_by(unit_id) %>%
  summarise(mean = mean(outcome))

这产生:

unit_id  mean 
1        4
2        2

我正在尝试找出一种方法来获取每个 unit_id 的平均值并将其包含在原始数据框中。我希望输出如下所示。

unit_id  outcome  mean
1        3        4
1        5        4
1        4        4
2        1        2
2        2        2
2        3        2

我们可以用mutate代替summarise

library(dplyr)
df <- df %>%
        group_by(unit_id) %>%
        mutate(mean = mean(outcome))