有没有一种方法可以检查R中多个模型中使用的变量的频率?

时间:2019-05-16 10:28:56

标签: r loops regression counting

我试图通过在R中创建10个逐步模型来查看逐步回归中使用了哪些变量。我使用的完整数据集是库ISLR中的Credit。

我使用相同的完整数据集创建了子训练数据集。然后,我使用for循环成功创建了10个逐步模型,然后提取了每个模型中使用的系数的名称。

这是我创建10个模型的方式:

  library(ISLR)
  data(Credit)
  for (i in 1:10) {
  training_random[[i]]<-createDataPartition(y=Credit$Balance,p=0.7,list=F)
  train_data[[i]]<-Credit[training_random[[i]],]
  test_data[[i]]<-Credit[-training_random[[i]],]
  ols_step_null[[i]]<-lm(Balance~1,data=train_data[[i]])
  ols_step_full[[i]]<-lm(Balance~.,data=train_data[[i]])
  ols_step[[i]] <- step(ols_step_null[[i]], 
                        formula(ols_step_full[[i]]), 
                        k=log(nrow(train_data[[i]])), 
                        direction='both',trace=0)
}

作为示例,在输入以下代码后:

test<-c(names(ols_step[[6]]$coef),names(ols_step[[7]]$coef))

我真的有一个向量,列出了第6和第7逐步模型中使用的所有变量。我使用

成功计算了每个变量的使用频率
table(test)

我希望通过写一个循环来扩展它:

test<-vector("list",10)

for (i in 1:10) {
  test[[i]]<-names(ols_step[[i]]$coef)
}

结果弹出为10个单独的行,指示每个模型中使用的变量,而我未能按照上面的期望使用表函数。显示的错误是:

  

表(测试)中的错误:所有参数的长度必须相同

有人可以帮忙吗?

0 个答案:

没有答案