R表达导致NaN无明显原因
怎么会是这样的表达呢R表达导致NaN无明显原因,r,expression,nan,equation,R,Expression,Nan,Equation,怎么会是这样的表达呢 > (exp(17.118708 + 4.491715 * -2)/-67.421587)^(-67.421587) 导致 [1] NaN [1] NaN 当 基本上应该有相同的结果,给我 [1] -1.238487e-115 这让我抓狂,我花了几个小时寻找错误。在这种情况下,“-2”是函数的一个参数。我真的想不出解决办法。谢谢你的帮助 编辑: 我看到当我加上括号时 > (-50.61828)^(-67.421587) 它还导致 [1] NaN [1
> (exp(17.118708 + 4.491715 * -2)/-67.421587)^(-67.421587)
导致
[1] NaN
[1] NaN
当
基本上应该有相同的结果,给我
[1] -1.238487e-115
这让我抓狂,我花了几个小时寻找错误。在这种情况下,“-2”是函数的一个参数。我真的想不出解决办法。谢谢你的帮助
编辑:
我看到当我加上括号时
> (-50.61828)^(-67.421587)
它还导致
[1] NaN
[1] NaN
…但这并不能解决我的问题。据我所知,
-50.61828^(-67.421587)
的评估结果为-(50.61828^(-67.421587))
(-50.61828)^(-67.421587)
也会导致NaN。这是因为C99标准下实施了pow
。
更不用说OP的例子了:(-50.61828)^(-67.421587)
,数学上合理的(-8)^(1/3)=-2在R:
(-8)^(1/3)
# [1] NaN
引用自?“^”
:
我使用的是Ubuntu LINUX,因此可以在此处打印man power
的相关部分:
If x is a finite value less than 0, and y is a finite noninteger, a
domain error occurs, and a NaN is returned.
@warmoverflow,你是对的,我复制了错误的代码。我编辑了这个问题。祝你好运。看我编辑的问题,我复制了错误的值,然而,你是对的。但是为什么结果仍然是NaN?当x
和y
都是阴性和非整数时,你如何定义x^y
?那么为什么(-10)^(-60)会导致1e-60?啊,我明白了。事实上,这是很明显的。该函数只是没有为特定范围定义。