2014-03-14 29 views
0

我正在做一些線性迴歸和測試我正在編寫的程序一堆數據R功能找到cloest零不返回底片 - R

實現線性模型lm()後,我得到這個:

>>summary(model2)$coef[,3]

(Intercept)   sex   fat  fiber  alcohol  chol 
19.2786166 -6.1693274 2.5304990 3.0357110 1.3205717 -0.8407960 

要找到衣櫃爲零,我這樣做:

mn <- min(abs(summary(model2)$coef[,3]-0))

>> mn 
[1] 0.840796 

但是,mn應該是負值。如何調整我的方法以返回負面版本? (我需要它是負面的,因爲我把它放在後面)。

在此先感謝。

回答

2

我會做:

closest.to.zero <- function(x) x[which.min(abs(x))] 

closest.to.zero(summary(model2)$coef[,3]) 
+0

真棒。這工作很好,並返回否定。但是我剛剛注意到,在R(c = c^2)中平方變量並不會返回負數(除非您鍵入數字-0.5678^2)。 – Reanimation

+1

你爲什麼期望平方負數能給出一個負數?如果'x < - 3',那麼'x^2'是'9',這是正確的結果。 R會告訴你'-3^2'只是'-9',因爲'^'運算符比一元運算符''具有更高的優先級,所以'-3^2'就像' - (3^2 )'。 – flodel

+0

我正在檢查,因爲我去了我的計算器。如果你使用'x^2按鈕來平方,它會返回一個負數,但是如果你輸入'-0.123 * -0.123',則不會。它完全放棄了我自己的想法,即將自身乘以負數變成了正數。愚蠢的時刻。感謝您強調這一點。 – Reanimation