我试图在R中生成一个简单的多变量表达式,类似于以下内容:
coef1 * prev1 + coef2 * prev2 + coef3 * prev3
我可以很容易地用quote()
美元做到这一点
quote(coef1 * prev1 + coef2 * prev2 + coef3 * prev3)
其生成所需的call
个类.
当我有多个系数(即,多个coef
)要估计时,问题就出现了.
我可以用paste0()
美元做到这一点
myvec <- 1:3
paste0(paste0("coef",myvec,"*prev",myvec),collapse="+")
#> [1] "coef1*prev1+coef2*prev2+coef3*prev3"
但问题是,上面的类是character
.使用quote()
,类是call
,可以用来判断.
我也不能将上面的内容包装在quote
中,因为paste0
函数将包含在表达式中:
quote(paste0(paste0("coef",myvec,"*prev",myvec),collapse="+"))
将给予:
paste0(paste0("coef", myvec, "*prev", myvec), collapse = "+")
当我想要的只有:
coef1 * prev1 + coef2 * prev2 + coef3 * prev3
有没有可能的方法仍然生成一个call
类,其中有多个变量需要估计,而不必在quote
中显式地输入它们?
提前谢谢!