2012-01-20 16 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

相关问题