R 如何在 df 列表上执行多个方差分析和事后测试?



如何在数据帧列表上执行多个ANOVA´sPost-Hoc-Tests?假设我有这种类型的数据结构:

set.seed(2)
df1 <- data.frame(Number = c("No1", "No2", "No3", "No1", "No2", "No3", "No1", "No2", "No3" ),
value = sample(1:200, 9))
df2 <- data.frame(Number = c("No4", "No5", "No6", "No4", "No5", "No6", "No4", "No5", "No6" ),
value = sample(1:200, 9))
df3 <- data.frame(Number = c("No7", "No8", "No9", "No7", "No8", "No9", "No7", "No8", "No9" ),
value = sample(1:200, 9))
df <- list(df1 = df1,df2 = df2,df3 = df3)

使用一个df,我可以执行方差分析,也可以执行agricolae包中的HSD.test

library(agricolae)
ANOVA <- aov(value ~ Number, data = df1)
HSD_Test <- agricolae::HSD.test(y = ANOVA,
trt = "Number", 
group = TRUE,
console = TRUE,
alpha = 0.3)
graphics::plot(HSD_Test)

但是我如何在列表中使用多个df '呢?理想情况下,我希望将分组变量(a,b,c等)存储在数据框架中的新列中,如下所示:

> df1
Number value Group
1    No1    33     a
2    No2    18     a
3    No3     8     b
4    No1   164     a
5    No2    94     a
6    No3    37     b
7    No1   149     a
8    No2   118     a
9    No3    71     b

I donot我想把df组合成一个大df,然后运行方差分析。

这样的事情应该会让你继续前进:

set.seed(2)
df1 <- data.frame(Number = c("No1", "No2", "No3", "No1", "No2", "No3", "No1", "No2", "No3" ),
value = sample(1:200, 9))
df2 <- data.frame(Number = c("No4", "No5", "No6", "No4", "No5", "No6", "No4", "No5", "No6" ),
value = sample(1:200, 9))
df3 <- data.frame(Number = c("No7", "No8", "No9", "No7", "No8", "No9", "No7", "No8", "No9" ),
value = sample(1:200, 9))
df <- list(df1 = df1,df2 = df2,df3 = df3)
ex <- lapply(df,function(x) aov(value ~ Number, data = x))

最新更新