对数据框中的重复进行分组和平均

Jos*_*osh 0 r dplyr

我有不同样本和技术复制的数据框(AA.1、AA.2、AA.3)。每个完整的样本集(所有样本技术重复)都有一个测量值 var3,并针对不同的 var2(X、Y 或 Z)重复。所以总的来说,我有(样本数量)(技术重复数量(var2 数量)测量值(var1 x var2 的所有可能组合重复 3 次)。

data.frame(
  var1=rep(rep(c('AA.1', 'AA.2', 'AA.3', 'BB.1', 'BB.2', 'BB.3'), each=3), 2),
  var2=rep(c('X', 'Y'), each=18),
  var3=sample(20:40, 36, replace=TRUE)
)
Run Code Online (Sandbox Code Playgroud)

对于每个 var2,我想平均每个单独样本的技术重复。我想通过创建一个新的数据框来做到这一点,该数据框将样本名称列为行名称,3 列是 3 个技术重复。然后我可以做 rowMeans() 和 sd()。这怎么可能?

jlh*_*ard 5

在基础 R(调用您的数据框df)中:

aggregate(var3~var1+var2,df,mean)
#    var1 var2     var3
# 1  AA.1    X 31.66667
# 2  AA.2    X 25.00000
# 3  AA.3    X 30.66667
# 4  BB.1    X 27.33333
# 5  BB.2    X 32.00000
# 6  BB.3    X 29.66667
# 7  AA.1    Y 32.33333
# 8  AA.2    Y 24.66667
# 9  AA.3    Y 26.66667
# 10 BB.1    Y 38.00000
# 11 BB.2    Y 30.33333
# 12 BB.3    Y 25.66667
Run Code Online (Sandbox Code Playgroud)