【发布时间】:2019-07-29 15:13:16
【问题描述】:
我正在尝试使用不同的列(我的数据集中的自变量)构建各种回归模型。
set.seed(0)
True = rnorm(20, 100, 10)
v = matrix(rnorm(120, 10, 3), nrow = 20)
dt = data.frame(cbind(True, v))
colnames(dt) = c('True', paste0('ABC', 1:6))
所以我要放入数据中的自变量是“ABCi”,也就是当 i=1 时,使用 ABC1 等。每个模型使用前 80% 的观测值来构建,然后我对休息20%。
我试过了:
reg.pred = rep(0, ncol(dt))
for (i in 1:nrow(dt)){
reg = lm(True~paste0('ABC', i), data = dt[(1:(0.8*nrow(dt))),])
reg.pred[i] = predict(reg, data = dt[(0.8*nrow(dt)):nrow(dt),])
}
不工作...给出如下错误:
Error in model.frame.default(formula = True ~ paste0("ABC", i), data = dt[(1:(0.8 * :
variable lengths differ (found for 'paste0("ABC", i)')
不知道如何在循环中检索变量名...任何建议都值得赞赏!
【问题讨论】:
-
看起来您正在循环使用
for (i in 1:nrow(dt)){而不是列的行
标签: r function loops regression