Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对R中因子的每个单独水平进行方差分析_R_Split_Anova - Fatal编程技术网

对R中因子的每个单独水平进行方差分析

对R中因子的每个单独水平进行方差分析,r,split,anova,R,Split,Anova,我正在寻找一种简短而有效的方法,对每个因素水平进行单独的方差分析。我认为,我目前拥有的东西是多余的,而且会把工作空间弄得乱七八糟。假设我有以下几点: Letter Number Question A 1 1 A 2 1 A 3 1 B 1 1 B 2 1 B 3 1 C 1 1 C 2 1 C 3 1 我可以运行以下

我正在寻找一种简短而有效的方法,对每个因素水平进行单独的方差分析。我认为,我目前拥有的东西是多余的,而且会把工作空间弄得乱七八糟。假设我有以下几点:

Letter Number Question
A      1      1
A      2      1
A      3      1
B      1      1
B      2      1
B      3      1
C      1      1
C      2      1
C      3      1
我可以运行以下代码将数据帧拆分为子集A、B和C:

> list2env(split(data, data$Letter), globalenv())
> ANOVA.A <- aov(Question~Number, data=A)
> ANOVA.B <- aov(Question~Number, data=B)
> ANOVA.C <- aov(Question~Number, data=C)
虽然这为我提供了所需的结果,但它会使工作区变得混乱。我的实际数据集要大得多,因此我正在寻找更简单、更优雅的数据集。

使用base Lappy:

或者使用dplyr:

使用基本搭接:

或者使用dplyr:


是否可以为每个项目执行summaryaov?是的:仅保存,例如,第一个备选方案为l,然后为lapplyl,summary是否可以为每个项目执行summaryaov?是的:仅保存,例如,第一个备选方案为l,然后为lapplyl,summary
lapply(split(df, df$Letter), aov, formula=Question ~ Number)
library(dplyr)
obj <- df %>% group_by(Letter) %>% do(model = aov(Question~Number, data = .))
obj$model
library(data.table)
df <- as.data.table(df)
df[, list(Model = list(aov(Question ~ Number))), keyby = Letter]$Model