计算复制的平均值

问题描述 投票:1回答:2

我的数据看起来像:

Sample  Replication Days
1   1   10
1   1   14
1   1   13
2   1   NA
2   1   5
2   1   18
1   2   16
1   2   NA
1   2   18
2   2   15
2   2   7
2   2   12

我想为复制中的Samples平均值添加一列。我想保留复制作为因素,以查看是否由于复制而产生任何影响。例如,分别用于复制1的样本1的平均值和用于复制2的样本1的平均值。然后,我想使用该列进行ANOVA的使用:

sample_aov <- aov(Sample~Days, na.rm=TRUE)

我尝试使用聚合,但我认为我犯了一个错误。我将不胜感激。谢谢!

r mean
2个回答
1
投票

让我们使用您的原始建议来使用aggregate。我们将呼叫您的data.frame df。注意您的分组变量是samplerepl,请使用:

> val <- aggregate(.~sample+repl, df, FUN=mean)
> val
  sample   repl          days
       1      1      12.33333
       2      1      11.50000
       1      2      17.00000
       2      2      11.33333

您准备好进行方差分析。


1
投票

使用tidyverse,您可以按以下方式处理数据框:

library(tidyverse)
df = data.frame(Sample = c(rep(1,3), rep(2,3),rep(1,3), rep(2,3)),
                Replication = c(rep(1,6), rep(2,6)),
                Days = c(10,14,13,NA,5,18,16,NA,18,15,7,12))

df <- df %>% group_by(Sample, Replication) %>% summarise(Mean = mean(Days, na.rm = TRUE))

您将获得以下数据框:

> df
# A tibble: 4 x 3
# Groups:   Sample [2]
  Sample Replication  Mean
   <dbl>       <dbl> <dbl>
1      1           1  12.3
2      1           2  17  
3      2           1  11.5
4      2           2  11.3

现在您可以通过执行以下操作对此数据帧执行anova测试:

> aov(Mean ~ Sample, data = d)
Call:
   aov(formula = Mean ~ Sample, data = d)

Terms:
                  Sample Residuals
Sum of Squares  10.56250  10.90278
Deg. of Freedom        1         2

Residual standard error: 2.334821
Estimated effects may be unbalanced

由于您只有两个组要比较,所以t-test更合适:

> t.test(Mean ~ Sample, data = df)

    Welch Two Sample t-test

data:  Mean by Sample
t = 1.392, df = 1.0026, p-value = 0.3962
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -26.23892  32.73892
sample estimates:
mean in group 1 mean in group 2 
       14.66667        11.41667 

这是您要寻找的吗?

© www.soinside.com 2019 - 2024. All rights reserved.