我有一个 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/