在函数中运行多个回归

时间:2019-01-22 21:59:02

标签: r linear-regression

我想编写一个函数,我可以传递一个data.table,此data.table中的一列作为因变量,并将几列作为回归变量。

create_tables <- function(DT_for_regression, DepVar, Control1, 
Control2 = NULL, Control3 = NULL)
{

 results <- felm(Depvar ~ Control1 + Control2 + Control3 | Firm +  
time | 0 | Industry, data = DT_for_regression, exactDOF = FALSE, 
na.action = na.omit)
 summary(results)
}
create_tables(DT, "Outcome", "Variable_of_interest")

我通过在变量周围放置“ get”,通过将变量指定为公式等方式进行了很多操作,但是我总是收到错误消息,即“结果”(传递给Depvar的变量名称)不能为找到(即使它存在于DT_for_Regression中)。有人有主意吗?我要在函数中执行此操作的原因是,我想一次运行几种回归组合,并且只需单击一下就可以更改一个变量。

1 个答案:

答案 0 :(得分:4)

将公式粘贴在一起,然后将其传递给模型。

create_tables <- function(DT_for_regression, DepVar, Control1, 
                          Control2 = NULL, Control3 = NULL){

  my_formula <- as.formula(
    paste(DepVar, '~',
          paste(c(Control1, Control2, Control3), collapse = '+'),
          '| Firm + time | 0 | Industry')
  )

  results <- felm(my_formula, data = DT_for_regression, exactDOF = FALSE,
                  na.action = na.omit)
  summary(results)
}