我正在尝试执行以下操作:
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'找到)
正确的方法是什么?
答案 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
保留所有现有的预测变量,并仅在其中添加新值。