R 如何为每个回归循环迭代向数据集添加新列?

R 如何为每个回归循环迭代向数据集添加新列?,r,loops,multiple-columns,add,R,Loops,Multiple Columns,Add,我试图通过将观察值分为1/4和3/4组(分别为测试和训练)来测试模型的预测能力,使用自变量训练样本运行一阶回归,使用这些系数从自变量测试样本生成预测值,然后我想为循环的每次迭代向因变量测试数据中添加这些预测值的新列 上下文:TSIP500为完整样本iv为自变量dv是因变量,最多50次迭代只是一个迭代量不太大的测试 我在使用预测函数时遇到了问题,所以我手工计算了这个方程。我的代码如下: for(i in 1:50){ test_index <- sample(nrow(TSIP500iv

我试图通过将观察值分为1/4和3/4组(分别为测试和训练)来测试模型的预测能力,使用自变量训练样本运行一阶回归,使用这些系数从自变量测试样本生成预测值,然后我想为循环的每次迭代向因变量测试数据中添加这些预测值的新列

上下文:TSIP500为完整样本
iv
为自变量
dv
是因变量,最多50次迭代只是一个迭代量不太大的测试

我在使用预测函数时遇到了问题,所以我手工计算了这个方程。我的代码如下:

for(i in 1:50){
  test_index <- sample(nrow(TSIP500iv), (1/4)*nrow(TSIP500iv), replace=FALSE)
  train_500iv <- TSIP500[-test_index,"distance"]
  test_500iv <- TSIP500[test_index,"distance"]
  train_500dv <- TSIP500[-test_index,"percent_of_max"]
  test_500dv <- TSIP500[test_index,"percent_of_max"]
  reg_model <- lm(train_500dv~train_500iv)
  int <- reg_model$coeff[1]
  B1 <- reg_model$coeff[2]
  predicted <- (int + B1*test_500iv)
  predicted <- data.frame(predicted)
  test_500dv <- data.frame(test_500dv)
  test_500dv[,i] <- apply(predicted)
}
for(1:50中的i){
测试索引<代码>用于(1:50中的i){
测试索引<代码>用于(1:50中的i){

测试索引请显示一个小的可重复的示例如果没有样本数据(正如akrun所建议的),这将很难帮助您。然而,看到
apply(predicted)
不仅仅意味着数据的逻辑组织(
apply
有三个必需参数,您缺少
MARGIN=
FUN=
)。请显示一个小的可复制示例,没有样本数据(正如akrun所建议的那样),这将很难帮助您。但是,看到
apply(predicted)
不仅仅意味着数据的逻辑组织(
apply
有三个必需的参数,您缺少
MARGIN=
FUN=
)。
for(i in 1:50){
  test_index <- sample(nrow(TSIP500iv), (1/4)*nrow(TSIP500iv), replace=FALSE)
  train_500iv <- TSIP500[-test_index,"distance"]
  test_500iv <- TSIP500[test_index,"distance"]
  train_500dv <- TSIP500[-test_index,"percent_of_max"]
  test_500dv <- TSIP500[test_index,"percent_of_max"]
  reg_model <- lm(train_500dv~train_500iv)
  int <- reg_model$coeff[1]
  B1 <- reg_model$coeff[2]
  temp_results <- paste('pred',i,sep='_')
  assign(temp_results, as.data.frame(int + B1*test_500iv))
  test_500dv <- cbind(data.frame(test_500dv),temp_results)
}