gpt4 book ai didi

r - 如何访问数据集的各个变量以进行线性回归?

转载 作者:行者123 更新时间:2023-12-04 11:58:44 25 4
gpt4 key购买 nike

我使用的是波士顿数据集,来自 MASS 包。

我需要分别使用其他13个预测器来预测crim,并保存每个模型的斜率系数。

如何实现自动化?

我不知道如何在 for 循环中访问数据集的变量。

我已经尝试使用它的索引来访问单个变量:

fit1 = lm(Boston[1]~Boston[2])

但它会返回这个:

Error en model.frame.default(formula = Boston[1] ~ Boston[2], drop.unused.levels = TRUE) : 
invalid type (list) for variable 'Boston[1]'

我想访问单个变量,以便使用 for 循环执行 13 个不同的 lm()s:类似于 fit = Boston[i ] ~ 波士顿[i+1]

最佳答案

reformulate() 是一种使用指定预测变量设置公式的便捷方法:

 library("MASS")
get.slope <- function(pred) {
fit <- lm(reformulate(pred,response="crim"),data=Boston)
## unname() to avoid duplicating name of response
return(unname(coef(fit)[2]))
}
sapply(names(Boston)[-1],get.slope)
## zn indus chas nox rm age
## -0.07393498 0.50977633 -1.89277655 31.24853120 -2.68405122 0.10778623
## dis rad tax ptratio black lstat
## -1.55090168 0.61791093 0.02974225 1.15198279 -0.03627964 0.54880478
## medv
## -0.36315992

关于r - 如何访问数据集的各个变量以进行线性回归?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29063136/

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