Suppose I have
tibble(id = c(1,1,2,2), data = c(1:4))
i.e.
id data
1 1
1 2
2 3
2 4
I want to add a column with id-secific means, i.e. I want to get to
id data id_means
1 1 1.5
1 2 1.5
2 3 3.5
2 4 3.5
How can I do this?
We can use mutate after grouping by 'id'
df1 %>%
group_by(id) %>%
mutate(id_means = mean(data))
# A tibble: 4 x 3
# Groups: id [2]
# id data id_means
# <dbl> <int> <dbl>
#1 1.00 1 1.50
#2 1.00 2 1.50
#3 2.00 3 3.50
#4 2.00 4 3.50
df1 <- tibble(id = c(1,1,2,2), data = c(1:4))