我正在尝试编写一个简单的代码,它为每一列运行单向方差分析,其中数据如下所示:
蛋白质A | 蛋白质B |
---|---|
A1 | 细胞1 |
A2 | 细胞3 |
B1 | 5 号小区 |
B2 | 7 号细胞 |
数据框有 10 行和 300 列。我已经对 A、B、C 组等进行了方差分析。不幸的是,我必须要求每个方差分析的摘要,例如Summary(anovas$PROTEIN A),这意味着我必须手动执行此操作 300 次。有没有什么方法可以简单地创建一个列(可以是另一个数据框),其中自动提取方差分析的 P 值,这样我就不必手动执行此操作?这是我的方差分析代码:
fit_aov <- function(col) {
aov(col ~ trt, data = df_long)
}
anovas <- map(df_long[, 2:ncol(df_long)], fit_aov)
提前致谢!
summary(anovas$ Protein2)[[1]][1,5] 产生 1 个读数。
您似乎可以修改函数以直接提取 p 值。像这样的东西:
fit_aov <- function(col) {
summary(aov(col ~ trt, data = df_long))[[1]]$`Pr(>F)`[1]
}
然后不要使用 purrr::map,而是使用 purrr::mab_dbl。这将创建一个 p 值向量,然后您可以使用它。