关于使用dplyr的组内平均值

关于使用dplyr的组内平均值,r,R,我有一个简短的问题。为什么这个代码给我们的是所有数据的平均值,而不是X内的平均值 df1 <- data.frame(X = rep(x = LETTERS[1:2], each = 3), Y = 1:6) df1<-df1%>%group_by(X)%>%mutate(meanY=mean(Y)) df1%突变(平均值Y=平均值(Y)) 原因是加载的mutate来自plyr屏蔽了dplyr::mutate。在新的R会话上执行此操作,而不加载plyr,或者

我有一个简短的问题。为什么这个代码给我们的是所有数据的平均值,而不是X内的平均值

   df1 <- data.frame(X = rep(x = LETTERS[1:2], each = 3), Y = 1:6)
   df1<-df1%>%group_by(X)%>%mutate(meanY=mean(Y))
df1%突变(平均值Y=平均值(Y))

原因是加载的
mutate
来自
plyr
屏蔽了
dplyr::mutate
。在新的
R
会话上执行此操作,而不加载
plyr
,或者使用
指定包名

library(dplyr)
df1%>%
    group_by(X)%>%
    dplyr::mutate(meanY=mean(Y))
# A tibble: 6 x 3
# Groups:   X [2]
#  X         Y meanY
#  <fct> <int> <dbl>
#1 A         1     2
#2 A         2     2
#3 A         3     2
#4 B         4     5
#5 B         5     5
#6 B         6     5

另外,你接受的每一个答案都会得到2点声誉积分。
df1%>%
     group_by(X)%>%
     plyr::mutate(meanY=mean(Y))
# A tibble: 6 x 3
# Groups:   X [2]
#  X         Y meanY
#  <fct> <int> <dbl>
#1 A         1   3.5
#2 A         2   3.5
#3 A         3   3.5
#4 B         4   3.5
#5 B         5   3.5
#6 B         6   3.5