我有一个包含 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)
}
目前正在产生错误Error in model.frame.default(formula = i ~ subblock, data = df, drop.unused.levels = TRUE) : variable lengths differ (found for 'subblock')
可变长度是一致的,所以我想我循环不正确。
数据如下所示(开头有更多分类列),营养成分列从第 10 列开始。
block |
tillage |
residue |
subblock |
nutrient 1 |
nutrient 2 |
etc. |
b1 |
NT |
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))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)