R:如何阻止update.formula将RHS包装在额外的括号中

时间:2016-12-05 22:31:45

标签: r formula

我正在编写一个函数,除其他外,根据更新的公式从pgmm包中调用PLM。但是当我从update.formula使用stats时,公式的右侧(RHS)变得莫名其妙地包含在括号中。除了formula=中的pgmm参数不接受这种语法之外,我不在乎。

我的基线公式:

 model.AR1.1X = y ~ lag(y,1) + lag(x,1)  

我将此用于一些初步估算,然后通过以下方式更新:

gmm.form = update.formula(model.AR1.1X, . ~ . | lag(y, 2:6) 
# calling this formula shows:
gmm.form
y ~ (lag(yi, 1) + lag(x, 1) | lag(y, 2:6))

注意波形符~后的括号,滞后(y ...等等......和结尾2:6的双括号)

当我接到pgmm时,我收到错误:

 Error in terms.default(formula) : no terms component nor attribute

当我自己写出公式(没有额外的括号)时没有问题,但这会使我的代码复杂化。

有没有办法阻止此行为? update.formula 或者,是否有可用于公式的gsub等效词对象删除这些括号?

1 个答案:

答案 0 :(得分:3)

您可以修改通话或在评论中使用粘贴。这是修改方法。

gmm.form[[3]] <- gmm.form[[3]][[2]]
#y ~ lag(y, 1) + lag(x, 1) | lag(y, 2:6)