2015-06-02 73 views
1

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

例如,使用 '动物' 数据集(质量),以下工作正常:

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

但我想要做的是:

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

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

对不起,如果答案是非常明显的 - 我已经搜查,但我无法解决它。

非常感谢

+3

您可以用'LM(paste0(X, “〜”,Y),数据=动物)' –

+0

谢谢!这样可行。 –

+0

很高兴听到这个消息。 –

回答

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 
+0

与lm(公式(paste0(y, '〜',X)),数据=动物)'? –

+1

'reconfulate'使得更容易使用术语向量:'reconulate(c(“var1”,“var2”),“respvar”)'并且可以选择包含截取。 (但基本上它只是为你粘贴)。 – MrFlick

+0

谢谢 - 完美的工作。 –

1

使用get功能

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

假设你不需要做任何类似于'预测()'从模型后(我假设这不是'预测()'安全?) –