Переформулировать в R log(Y+1)

Я работаю над набором данных, где мне нужно создать формулу для динамической передачи в lm. Итак, я использую переформулировать, чтобы сделать это.

formula = reformulate(termlabels = c('feature1', 'feature2', 'feature3'), response="y")

у непрерывно.

Это дает мне формулу как y ~ feature1+feature2+feature3

Однако я хочу, чтобы формула была log(y+1) ~ feature1+feature2+feature3

Как мне сделать это с помощью переформулирования?

1 ответ

Решение

Передайте ответ в виде выражения в кавычках:

x <- c("feature1", "feature2", "feature3")
reformulate(x, response=quote(log(y+1)))

Или вы можете просто построить формулу вручную. Это то, что reformulate делает под капотом.

formula(paste("log(y + 1) ~", paste(x, collapse="+"))) 
Другие вопросы по тегам