我正在编写一个函数,除其他外,根据更新的公式从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
等效词对象删除这些括号?
答案 0 :(得分:3)
您可以修改通话或在评论中使用粘贴。这是修改方法。
gmm.form[[3]] <- gmm.form[[3]][[2]]
#y ~ lag(y, 1) + lag(x, 1) | lag(y, 2:6)