Запустить несколько регрессий в функции - PullRequest
0 голосов
/ 23 января 2019

Я хочу написать функцию, в которой я могу передать 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» вокруг переменных, задавая переменные в виде формулы и т. Д., Но я всегда получаю сообщение об ошибке «Outcome» (имя переменной Iпередан в Depvar) не может быть найден (даже если он существует в DT_for_Regression).У кого-нибудь есть идея?Причина, по которой я хочу сделать это в функции, заключается в том, что я хочу запустить несколько комбинаций регрессий одновременно и иметь возможность изменять одну переменную одним щелчком мыши.

1 Ответ

0 голосов
/ 23 января 2019

Вставьте формулу вместе и передайте ее вашей модели.

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)
}
...