我正在尝试将术语添加到R中的模型公式。如果我直接在更新函数中输入变量名,则可以直接使用update()。但是,如果变量名称在变量中,则它不起作用。
myFormula <- as.formula(y ~ x1 + x2 + x3)
addTerm <- 'x4'
#Works: x4 is added
update(myFormula, ~ . + x4)
Output: y ~ x1 + x2 + x3 + x4
#Does not work: "+ addTerm" is added instead of x4 being removed
update(myFormula, ~ . + addTerm)
Output: y ~ x1 + x2 + x3 + addTerm
通过变量添加x4可以稍微复杂一点的方式完成。
formulaString <- deparse(myFormula)
newFormula <- as.formula(paste(formulaString, "+", addTerm))
update(newFormula, ~.)
Output: y ~ x1 + x2 + x3 + x4
有没有办法让update()直接执行此操作而无需这些额外的步骤?我尝试过粘贴,解析和其他常用功能,但它们无法正常工作。
例如,如果使用paste0,则输出为
update(myFormula, ~ . + paste0(addTerm))
Output: y ~ x1 + x2 + x3 + paste0(addTerm)
有人对如何在update()中使用变量有任何建议吗?
由于
答案 0 :(得分:8)
您可以这样做:
update(myFormula, paste("~ . +",addTerm))