如何提取 P 值并将其附加到已有的数据框中?

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

我正在尝试编写一个简单的代码,它为每一列运行单向方差分析,其中数据如下所示:

蛋白质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 个读数。

r anova
1个回答
0
投票

您似乎可以修改函数以直接提取 p 值。像这样的东西:

fit_aov <- function(col) {
  summary(aov(col ~ trt, data = df_long))[[1]]$`Pr(>F)`[1]
}

然后不要使用 purrr::map,而是使用 purrr::mab_dbl。这将创建一个 p 值向量,然后您可以使用它。

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