2015-06-02 118 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

假設你不需要做任何類似於'預測()'從模型後(我假設這不是'預測()'安全?) –