#r
#r
Вопрос:
Я пытаюсь создать функцию для запуска модели на основе списка переменных. Код отлично работает вне функции
data <- ovarian
model <- glm(fustat ~ rx, family = binomial(), data = data)
odds.ratio(model)
но когда я пытаюсь сделать это в функции, она возвращает ошибку
OR <- function(var){
model <- glm(fustat ~ var, family = binomial(), data = data)
return(odds.ratio(model))
}
OR("rx")
Error in model.frame.default(formula = fustat ~ var, data = data, drop.unused.levels = TRUE) :
variable lengths differ (found for 'var')
Есть идеи, как обойти это?
Спасибо
Ответ №1:
Вы передаете строку в качестве входных данных в функцию, преобразуете ее в формулу или что-то, что может быть приведено к формуле. Одним из способов было бы использовать reformulate
.
OR <- function(var){
model <- glm(reformulate(var, "fustat"), family = binomial(), data = data)
return(odds.ratio(model))
}
OR("rx")