如何在 R 的回归公式中使用变量?

How do you use variables in a regression formula in R?

如何在回归公式中使用变量?

例如,使用 'Animals' 数据集(在 MASS 中),以下工作正常:

data(Animals)
model <- lm(body ~ brain, data = Animals)

但我想做的是:

data(Animals)
x <- "body"
y <- "brain"
model <- lm(x ~ y, data = Animals)

这显然行不通,但我不知道我需要做什么。最终,我试图将公式放入一个循环中,并让它每次都 运行 不同。

抱歉,如果答案很明显 - 我已经搜索过但无法解决。

非常感谢

使用get函数

lm(get(x) ~ get(y), data = Animals)

您需要根据您的字符值制定一个合适的公式。在这种情况下最简单的方法是 reformulate() 函数

reformulate(y,x)
# body ~ brain

然后您可以在 lm() 通话中使用它

lm(reformulate(y,x), data = Animals)
# 
# Call:
# lm(formula = reformulate(y, x), data = Animals)
# 
# Coefficients:
# (Intercept)        brain  
#  4316.32258     -0.06594