我正在处理一个数据集,我必须生成要动态传递给lm的公式。所以,我正在使用重新制定来做到这一点。
formula = reformulate(termlabels = c('feature1', 'feature2', 'feature3'), response="y")
是连续的。
这让公式为y ~ feature1+feature2+feature3
但我希望公式为log(y+1) ~ feature1+feature2+feature3
我如何使用重新制定?
答案 0 :(得分:8)
将回复作为引用表达式传递:
x <- c("feature1", "feature2", "feature3")
reformulate(x, response=quote(log(y+1)))
或者您可以手动构建公式。这就是reformulate
所做的事情。
formula(paste("log(y + 1) ~", paste(x, collapse="+")))