r - R取幂之谜
问题描述
有谁知道为什么下面会产生一个 NaN?我在 OSX 上的 R 4.0.2 上运行它。
> (1.55e-04/-7.35e-05)^(10/(22.77-12.66))
[1] NaN
如果我把它分解,我也会得到一个 NaN
> a <- (1.55e-04/-7.35e-05)
> b <- (10/(22.77-12.66))
> a^b
[1] NaN
但是,如果我只是输入数字,我会得到正确的答案......
> a
[1] -2.108844
> b
[1] 0.9891197
> -2.108844 ^ 0.9891197
[1] -2.091793
解决方案
你得到正确答案了吗?以下作品:
-2.108844 ^ 0.9891197
#> [1] -2.091793
并给出与以下相同的结果:
-(2.108844 ^ 0.9891197)
#> [1] -2.091793
但是看看如果我将负号移到括号内会发生什么:
(-2.108844) ^ 0.9891197
#> [1] NaN
请注意,R 非常恰当地给出,NaN
因为我将负数提高到分数幂。
所以你的问题的答案是,由于运算符优先级,R解析器正在解释
-2.108844 ^ 0.9891197
作为
-(2.108844 ^ 0.9891197)
当您直接输入数字时,这会给您错误的答案。
推荐阅读
- ios - 如何自定义单元格的一部分
- excel - 如何制作 Excel 宏循环以剪切第二行并粘贴到第一行
- linux - 系统调用 lseek() 在 ubuntu 2.6.32 和 2.6.24 中比较慢
- artifactory - Jenkins Artifactory 插件:“声明式管道语法”中的脚本——如何绕过配置的代理?
- javascript - 如何将字典中的对象提取到单独的字典中
- python - 为什么数据框的这个单元格不包含一个值,而是一个系列?
- mongodb - 从 Mongoose 对象中获取简单对象以运行 Underscore 的 `_.difference()` 方法
- sql - 如何创建具有多个聚合函数的视图?
- python - 熊猫数据框值不变
- python - 如何将矩形转换为轮廓