r - 循环动态创建模型公式
问题描述
假设我想为Boston
数据集中的每个预测变量拟合一个简单的 LR 模型来预测犯罪率 ( crim
),并将这些拟合模型保存在一个列表中,以便稍后对它们进行迭代。
library(MASS)
names(Boston)
Output: 'crim' 'zn' 'indus' 'chas' 'nox' 'rm' 'age' 'dis' 'rad' 'tax' 'ptratio' 'black' 'lstat' 'medv'
以下
reg_list <- list()
i <- 1
for (name in names(Boston)[2:14]) {
reg_list[[i]] <- lm(crim~name, data=Boston)
i <- i+1
}
导致错误:
Error in model.frame.default(formula = crim ~ name, data = Boston, drop.unused.levels = TRUE): variable lengths differ (found for 'name') Traceback: 1. lm(crim ~ name, data = Boston) 2. eval(mf, parent.frame()) 3. eval(mf, parent.frame()) 4. stats::model.frame(formula = crim ~ name, data = Boston, drop.unused.levels = TRUE) 5. model.frame.default(formula = crim ~ name, data = Boston, drop.unused.levels = TRUE)
这是什么错误,我该如何解决?
解决方案
推荐阅读
- java - EnumSet 方法不会将任何枚举类型识别为枚举
- c++ - 为什么当我输入 stop 时我的 while 循环不会停止?
- python - 除了 python 控制台,我无法在任何地方导入 wxpython
- reactjs - React Redirect with props 不会渲染最终组件
- snowflake-cloud-data-platform - 关于雪花微分区大小的澄清?
- sql - MS Access Professional Plus 2019 的 Perl 连接字符串
- flutter - 没有为“对象”类型定义吸气剂“长度”
- llvm - LLVM 12 中“'llc -march=cpp”的替代方法是什么
- dictionary - 使用 Ansible 访问函数返回的字典项
- scala - 为什么具有 Monad 实例的类型的半群不组合?