我有一个描述回归模型控制变量的字符对象。每当有多个控制变量时,我都无法正确地动态引用它们。考虑以下示例:
x1 = runif(1000); x2 = runif(1000); x3 = runif(1000); e = runif(1000)
y = 2*x1+3*x2+x3+ e
df = data.frame(y, x1,x2,x3)
# define formula inputs
depvar =as.symbol("y")
variableofinterest = as.symbol("x1")
control1 = as.symbol('x2')
control2 = as.symbol('x2+x3')
# this works
eval(bquote(lm(.(depvar)~ .(variableofinterest) + .(control1) , data = df)))
# this does not
eval(bquote(lm(.(depvar)~ .(variableofinterest) + .(control2) , data = df)))
它不起作用,因为数据框显然不包含变量x2+x3
,但是当输入control = x2+x3
是给定字符(超出我的控制范围)时,我如何才能正确地解开这些以引用