请考虑以下示例:

library(dplyr)
  df <- data.frame(                              
    Cat  = c ("A","B","C","B","C","A","C","A","B"),       
    Fre = c(9,5,0,2,7,8,1,3,7))                            

我想要计算由变量Cat分组的平均值,如下所示.

df_new <- df %>%
  summarise(Mean = mean(Fre))
# A tibble: 3 × 2
  Cat      Mean
  <chr>    <dbl>
1 A         6.67
2 B         4.67
3 C         2.67

现在我的问题是:如何将计算出的平均值绑定到原始数据df?我需要的输出如下所示;

        Cat       Fre   Mean
1        A         9    6.67
2        B         5    4.67
3        C         0    2.67
4        B         2    4.67
5        C         7    2.67
6        A         8    6.67
7        C         1    2.67
8        A         3    6.67
9        B         7    4.67

提前谢谢您!

推荐答案

您可以执行以下操作:

df_new <- df %>%
  group_by(Cat) %>%
  mutate(Mean = mean(Fre)) %>%
  ungroup()

使用mutate而不是summarise来保留行

R相关问答推荐

如何创建构成多个独立列条目列表的收件箱框列?

从多个前置日期中获取最长日期

如何删除多个.CSV文件的行

使用R的序列覆盖

根据模式将一列拆分为多列,并在R中进行拆分

筛选出以特定顺序患病的个体

从BRM预测价值

非线性混合效应模型(NLME)预测变量的置信区间

移除仪表板Quarto中顶盖和车身之间的白色区域

我如何才能找到FAMILY=POISSON(LINK=&Q;LOG&Q;)中的模型预测指定值的日期?

如何同时从多个列表中获取名字?

找出二叉树中每个 node 在R中的深度?

根据列A中的差异变异列,其中行由列B中的相对值标识

有没有办法一次粘贴所有列

我如何使用循环来编写冗余的Rmarkdown脚本?

多元正态分布的计算

整理曲线图、曲线图和点图

R将函数参数传递给ggploy

在不带max()的data.table中按组查找最后一个元素

使用卡环从R中的列中删除单位(&C)