Прежде всего, всегда трудно помочь без примера воспроизводимого кода .Для будущих постов я рекомендую ознакомиться с тем, как предоставить такой минимальный воспроизводимый пример.
Я не совсем понимаю, о чем вы спрашиваете, поэтому я предполагаю, что речь идет о том, как создать функцию, которая соответствуетпростая линейная модель на основе data
с одним выбранным пользователем предиктором var
.
Вот пример, основанный на mtcars
results_LM <- function(data, var) {
lm(data[, 1] ~ data[, var])
}
results_LM(mtcars, "disp")
#Call:
#lm(formula = data[, 1] ~ data[, var])
#
#Coefficients:
#(Intercept) data[, var]
# 29.59985 -0.04122
Вы можете подтвердить, что это даеттот же результат, что и
lm(mpg ~ disp, data = mtcars)
Или, возможно, вы спрашиваете, как перенести имена столбцов для предиктора?В этом случае мы можем использовать as.formula
для построения формулы, которую мы используем вместе с аргументом data
в lm
.
results_LM <- function(data, var) {
fm <- as.formula(paste(colnames(data)[1], "~", var))
lm(fm, data = data)
}
fit <- results_LM(mtcars, "disp")
fit
#Call:
#lm(formula = fm, data = data)
#
#Coefficients:
#(Intercept) disp
# 29.59985 -0.04122
names(fit$model)
#[1] "mpg" "disp"