由早期代码打高尔夫提示为什么会:
>NaN^0
[1] 1
Run Code Online (Sandbox Code Playgroud)
它非常有意义的NA^0是1,因为NA丢失数据,以及任何升至0号将为1,包括-Inf和Inf.但是NaN应该代表非数字,为什么会这样呢?当?NaN州的帮助页面时,这更令人困惑/担忧:
在R中,基本上所有数学函数(包括基本算术)都应该与+/- Inf和NaN一起作为输入或输出正常工作.
基本规则应该是呼叫和与Infs的关系确实是具有适当数学限制的陈述.
涉及NaN的计算将返回NaN或NA:这两者中的哪一个不能保证并且可能依赖于R平台(因为编译器可能重新排序计算).
这背后有一个哲学原因,还是仅仅与R代表这些常数有关?