在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))

最新更新