为什么以下内容会返回FALSE
:
is.integer(4/4)
is.integer(4/2)
is.integer(2/2)
有什么想法吗?
我可以做以下事情:
4 %% 4
4 %% 2
2 %% 2
但我的目标是了解函数is.integer
。
谢谢!
答案 0 :(得分:2)
来自?is.integer
如果x包含整数,is.integer(x)会不测试!为了那个原因, 使用round,如示例中的函数is.wholenumber(x)。
is.wholenumber <-function(x, tol = .Machine$double.eps^0.5) abs(x - round(x)) < tol
> is.wholenumber(4/4)
# [1] TRUE
R将4/4
存储为double
:
> storage.mode(4/4)
# [1] "double"
你可以这样做:
x <- 4/4
storage.mode(x) <- "integer"
> is.integer(x)
# [1] TRUE