每列的单向方差分析

Adp*_*per 1 loops r anova

我需要对基于另一列的数据框中的每一列运行单向方差分析。我的数据框有 57 列,因此输入每个列名称非常耗时。这是我的数据框的一部分。

所以基本上,我需要为每一列运行这个函数

aov(df$PGY_16 ~ df$Total_Time_cm_16, df)
Run Code Online (Sandbox Code Playgroud)

所以我需要一个循环来为数据框中的每一列运行它。

任何帮助将不胜感激!

eip*_*i10 5

为了重现性,下面的代码使用内置mtcars数据框并返回一个列表,其中每个列表元素都是数据框中所有其他列aov的模型。mtcars$cyl我们使用mapfrompurrr包(它是包套件的一部分tidyverse)来负责aov在数据帧的每一列上连续运行。

library(tidyverse)

aov.models = mtcars[ , -grep("cyl", names(mtcars))] %>%
  map(~ aov(mtcars$cyl ~ .x))
Run Code Online (Sandbox Code Playgroud)

对于您的数据,类似的代码是:

aov.models = df[ , -grep("PGY_16", names(df))] %>%
  map(~ aov(df$PGY_16 ~ .x))
Run Code Online (Sandbox Code Playgroud)