gpt4 book ai didi

r - 对于线性模型,有没有办法遍历 r 中的列名(不是数字)?

转载 作者:行者123 更新时间:2023-12-05 00:43:01 25 4
gpt4 key购买 nike

我有一个数据表,其中包含 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)
}

这目前正在产生错误 model.frame.default 中的错误(公式 = i ~ 子 block ,数据 = df,drop.unused.levels = TRUE):可变长度不同(为“子 block ”找到)可变长度是一致的,所以我想我循环不正确。

数据类似于下图(开头有更多分类列),营养列从第 10 列开始。

<头>
阻止 耕作 残留 子 block 营养 1 营养素2 等等。
b1 新台币 NR s1 0.5 0.6

最佳答案

一般来说,使用 dput() 发布数据样本会很有帮助。如果没有,我将使用内置数据集 mtcars 向您展示如何使用 formula() 完成您正在做的事情:

head(mtcars)

# mpg cyl disp hp drat wt qsec vs am gear carb
# Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
# Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
# Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
# Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
# Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
# Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1

# Select columns
desired_columns <- names(mtcars)[!names(mtcars)=="mpg"]

for (column in desired_columns){
this_formula = formula(paste("mpg ~ ", column))
print(summary(lm(this_formula, data = mtcars)))
}

这将为数据中的每个 var 输出 lm(mpg ~ var)。关键是 paste() 语句,它将表达式构建成一个字符串,然后 formula() 使它成为一个公式对象 希望你能看到它是如何应用的到您的数据。

关于r - 对于线性模型,有没有办法遍历 r 中的列名(不是数字)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71737719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com