Tibble - 添加特定于id的平均列

时间:2018-04-29 14:01:58

标签: r dplyr

假设我有

tibble(id = c(1,1,2,2), data = c(1:4))

id data
1  1
1  2
2  3
2  4

我想添加一个具有id-secific手段的列,即我想要

id data id_means
1  1    1.5
1  2    1.5
2  3    3.5
2  4    3.5

我该怎么做?

1 个答案:

答案 0 :(得分:1)

我们可以在通过' id'

进行分组后使用mutate
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))