我很惊讶地发现R没有一个方便的函数来检查数字是否为整数。
is.integer(66) # FALSE
is.integer(x)
并不测试x
是否包含整数! 要测试是否为整数,请使用round
函数,例如示例中的is.wholenumber(x)
。
该示例提供了这个自定义函数作为“解决方法”。
is.wholenumber <- function(x, tol = .Machine$double.eps^0.5) abs(x - round(x)) < tol
is.wholenumber(1) # is TRUE
如果我需要编写一个用于检查整数的函数,假设我没有阅读上面的评论,我会编写一个类似以下代码的函数:check.integer <- function(x) {
x == round(x)
}
我的方法在哪些情况下会失败?如果你处于我假设的境地中,你会采用什么样的方法绕过这些问题?
round(x)
被正确实现,将其应用于整数的结果始终是该整数... - Stephenis.integer
检查计算概念,而check.integer
用户函数则检查数学角度。 - João Daniel