You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何R中用分数结果计算出NaN,硬编码数值却正常?

R中负数幂运算返回NaN的原因

这是运算符优先级导致的差异:

  • R里幂运算^的优先级比负号-高,所以你写的-0.048^1.5,实际执行逻辑是先算0.048^1.5,再给结果加负号,自然能得到合法的实数结果。
  • 但(x/5)^1.5或者y^1.5不同,这里是直接对负数-0.048做1.5次方运算。1.5等于3/2,运算时会先对负数开平方(本质是求0.5次方),而实数范围内负数没有平方根,所以返回NaN。

你可以自己验证这一点:

# 直接对负数做1.5次方,返回NaN
(-0.048)^1.5
#> [1] NaN

# 先算正数的幂再取负,和硬编码结果一致
-(0.048^1.5)
#> [1] -0.01051627

内容的提问来源于stack exchange,提问作者Josep Pueyo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 20:34:49