Bet*_*eth 3 loops for-loop r linear-regression anova
我有一个包含 40 个数据列(40 种不同的营养素)的数据表,还有用于绘图数字和因子的附加列。我想自动循环每个列名称并为每个列生成一个线性模型和摘要。数据列从第 10 列开始。
for(i in 10:ncol(df)) { # for-loop over columns
mod2<-aov(i~block+tillage*residue+Error(subblock),data=df)
summary(mod2)
}
Run Code Online (Sandbox Code Playgroud)
目前,这正在产生错误Error in model.frame.default(formula = i ~ subblock, data = df, drop.unused.levels = TRUE) : variable lengths differ (found for 'subblock')
Variable lengths are concent,所以我想我循环不正确。
数据如下所示(开头有更多分类列),营养成分列从第 10 列开始。
| 堵塞 | 耕作 | 残留物 | 子区块 | 营养素1 | 营养素2 | ETC。 |
|---|---|---|---|---|---|---|
| b1 | 新台币 | NR | s1 | 0.5 | 0.6 |
你不需要循环。您只需将矩阵传递给公式的 LHS:
dep <- names(iris)[names(iris) != "Species"]
f <- as.formula(sprintf("cbind(%s) ~ Species", paste(dep, collapse = ",")))
summary(lm(f, data = iris))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1186 次 |
| 最近记录: |