r - 按除组外的所有变量汇总变量

标签 r dplyr summarize

我有一个 data.frame,我需要计算每个“反组”(即下面的每个名称)的平均值。

Name     Month  Rate1     Rate2
Aira       1      12        23
Aira       2      18        73
Aira       3      19        45
Ben        1      53        19
Ben        2      22        87
Ben        3      19        45
Cat        1      22        87
Cat        2      67        43
Cat        3      45        32

我想要的输出如下所示,其中 Rate1 和 Rate2 的值是未在每个组中找到的列值的平均值。请忽略该值,我已经为示例编写了它。我更愿意使用 来做到这一点dplyr 如果可能的话。
Name    Rate1   Rate2
Aira    38      52.2
Ben     30.5    50.5
Cat     23.8    48.7

非常感谢任何帮助!谢谢!

PS - 感谢 伊恩特 复制他们的问题和他们的问题数据,但稍微改变了问题。 ( Mean per group in a data.frame )

最佳答案

这是通过基础 R 的另一个想法,

do.call(rbind, lapply(unique(df$Name), function(i)colMeans(df[!df$Name %in% i,-c(1:2)])))

#        Rate1    Rate2
#[1,] 38.00000 52.16667
#[2,] 30.50000 50.50000
#[3,] 23.83333 48.66667

或完成 Name ,
cbind.data.frame(Name = unique(df$Name), res1)

#  Name    Rate1    Rate2
#1 Aira 38.00000 52.16667
#2  Ben 30.50000 50.50000
#3  Cat 23.83333 48.66667

关于r - 按除组外的所有变量汇总变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60153300/

相关文章:

r - 如何按组获取汇总统计数据

r - R中一列具有等差的子数据框

r - 为什么我的 R 直方图中的第一个条形图这么大?

R:找到两条线的交点

r - 如何根据 R 中的位置向量替换字符串向量中的字符?

r - 使用 purrr 和 dplyr: 是 rlang::sym 最好的方法

r - 在多个变量上应用命令时缩短 case_when 语法

r - 在没有当前行的情况下使用 rollaply

r - 查找两个数据框中的共同条目

r - 使用 tidyverse 按组和整体获取摘要