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
我的控制台告诉我 -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