2012-01-20 18 views
2

當將向量放到小數點的冪時,我遇到了計算結果的問題。問題更具體地說,矢量中的負數作爲NAN返回。如果我將負數賦給一個變量,也會發生這種情況。一些例子解釋:當負數包含在一個向量中時NaN乘法結果

> -5.718301^2.85 
[1] -143.9498 

> test<--5.718301 
> test 
[1] -5.718301 
> test^2.85 
[1] NaN 

> c(5.718301)^2.85 
[1] 143.9498 
> c(-5.718301)^2.85 
[1] NaN 

任何人都可以向我解釋爲什麼會發生這種情況?有什麼辦法呢?所討論的矢量可能具有正值和負值,因此,我不能在之後指定負號。

由於提前, 阿蘭

+1

它在FAQ中:http://cran.r-project.org/doc/FAQ/R-FAQ.html#Why-are-powers-of-negative-numbers-wrong_003f –

回答

4

有沒有真正重視解決(-5.718301)^2.85NaN是正確的答案。

> (-5.718301)^2.85 
[1] NaN 

你在這裏試圖類似於要求負數的平方根。

當你成功評價

-5.718301^2.85 

運算符的優先級意味着它等同於

-(5.718301^2.85) 

,當然是很好定義的。

+0

好的解釋,+1。請注意,您可以評估'as.complex(-5.718301)^ 2.85',該值爲'-128.2602 + 65.3518i' – James

相關問題