R有"negative zero"吗?

Does R have "negative zero"?

我的控制台告诉我 -0 returns 0 并且 c(1:5)[0]c(1:5)[-0] return integer(0) .这是否意味着R没有“负零”的概念?

R 中的索引从 1 开始,索引 0 是允许的,但代表一个空向量 (R Language Definition)。负号表示 “给我列表中的所有元素,但我在索引中指定的元素除外”,即 c(1:5)[-2] returns [1] 1 3 4 5.在您的情况下,索引 0 和 -0 之间没有区别,它们代表相同的行为。

虽然R在隐藏它方面做得很好,但实际上R确实有一个负零:

# R says these are the same

0 == -0
## [1] TRUE

identical(0, -0)
## [1] TRUE

# but they are not

is.neg0 <- function(x) x == 0 && sign(1/x) == -1

is.neg0(0)
## [1] FALSE

is.neg0(-0)
## [1] TRUE