我想编写一个函数,我可以传递一个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中)。有人有主意吗?我要在函数中执行此操作的原因是,我想一次运行几种回归组合,并且只需单击一下就可以更改一个变量。
答案 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)
}