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

时间:2015-06-02 19:21:45

标签: r regression

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

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

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

但我想做的是:

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

这显然不起作用,但我无法弄清楚我需要做什么。最终,我试图将公式放在一个循环中,并让它每次运行不同的东西。

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

非常感谢

2 个答案:

答案 0 :(得分:1)

使用get功能

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

答案 1 :(得分:1)

您需要根据角色值制作合适的公式。在这种情况下最简单的方法是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