2016-10-04 27 views
-3

在線性模型的公式定義中變換模型是否是一種很好的做法?R中線性模型的變換變量

例如:

reg1 <- lm(log(Y) ~ X + Z + (W)^2, data = data) 

當我只有WXYZ數據,而不是轉化變量?我沒有看到W^2列出,當我打電話給reg1摘要。

+3

你想'我(W^2)'見'的幫助(「公式」)' – jogo

回答

3

由於快速搜索並未顯露出可重複的(這將有一個答案),這裏是一個:

,您可以指定你的迴歸方程的lm部分稱爲公式。公式以自己的方式使用運算符(如^,+),因此您不能使用它們在公式中進行算術運算。

爲了式內做算術,則需要使用I功能,如@jogo建議(見?I其中的R的說明),如下所示:

reg1 <- lm(log(Y) ~ X + Z + I(W^2), data = data) 

這防止從ř解釋運營商如公式運算符,所以它們被解釋爲算術運算符代替。

另一個R可能以非直觀方式解釋輸入的例子是函數data.frame。如果你試圖建立一個data.frame了一個單子,它強制轉換成原子矢量(S):

li = list(x = 1:3, y = 11:13, z = 21:23) 
data.frame(a = 5:7, b = li) 
# a b.x b.y b.z 
# 1 5 1 11 21 
# 2 6 2 12 22 
# 3 7 3 13 23 

這也可以使用I是可以避免的,這將抑制名單這個特殊的解釋爲一個或多個原子的載體,並創建一個列表列,而不是:

data.frame(a = 5:7, b = I(li)) 
# a   b 
# x 5 1, 2, 3 
# y 6 11, 12, 13 
# z 7 21, 22, 23 
+0

謝謝,我知道它的一個簡單的問題,但我也找不到任何快速搜索的內容 – dleal

+1

「簡單」應該永遠不會成爲問題。只有不正確的提出(我認爲你不是,並且downvoters可悲的不在乎留下評論。) – jakub

相關問題