在R的公式表达式中添加控制变量字符串

时间:2019-07-02 15:38:20

标签: r regression

我正在尝试执行以下操作:

control_set_1 = "education + income + sex + birth + race + trust_daily"
control_set_2 = "sex + birth + race + trust_daily"

fit_controls <- lm(data = data, dv ~ politics*treatment + control_set_1)
fit_controls_2 <- lm(data = data, dv ~ politics*treatment + control_set_2)

我尝试将control_set_1换成as.formula(control_set_1),但无济于事。

我得到了错误:

  

model.frame.default(terms(formula,lhs = lhs,rhs = rhs,data = data,:可变长度不同(为'control_set_1'找到)

正确的方法是什么?

1 个答案:

答案 0 :(得分:4)

最简单的解决方法可能是避免使用字符串,而只是将所有内容保留为公式。然后,您可以根据需要使用update()更改公式

control_set_1 = ~. + education + income + sex + birth + race + trust_daily
control_set_2 = ~. + sex + birth + race + trust_daily

fit_controls <- lm(data = data, update(dv ~ politics*treatment, control_set_1))
fit_controls_2 <- lm(data = data, update(dv ~ politics*treatment, control_set_2))

.公式中的control_set保留所有现有的预测变量,并仅在其中添加新值。