重新计算R log(Y + 1)

pra*_*odh 2 r formula

我正在研究一个数据集,我必须生成动态传递给lm的公式.所以,我正在使用重新制定来做到这一点.

formula = reformulate(termlabels = c('feature1', 'feature2', 'feature3'), response="y")
Run Code Online (Sandbox Code Playgroud)

y是连续的.

这让我得到了公式 y ~ feature1+feature2+feature3

但是,我想要的公式 log(y+1) ~ feature1+feature2+feature3

我如何使用重新制定?

Hon*_*Ooi 8

将响应作为带引号的表达式传递:

x <- c("feature1", "feature2", "feature3")
reformulate(x, response=quote(log(y+1)))
Run Code Online (Sandbox Code Playgroud)

或者您可以手动构建公式.这就是reformulate引擎盖下的内容.

formula(paste("log(y + 1) ~", paste(x, collapse="+"))) 
Run Code Online (Sandbox Code Playgroud)