我从 R 中的 all.equal 方法得到了意外的输出,特别是 POSIXct 的实现,all.equal.POSIXct。
t <- Sys.time()
isTRUE(all.equal(t, t+1))
返回 TRUE,并且
isTRUE(all.equal(t, t+1, scale = 1))
返回 FALSE。
但是,如果查看 all.equal.POSIXct 的定义,可以看到 scale 参数的默认值为 1:
> all.equal.POSIXct
function (target, current, ..., scale = 1)
{
check_tzones(target, current)
NextMethod("all.equal")
}
<bytecode: 0x22eac90>
<environment: namespace:base>
如果显式调用 all.equal.POSIXct 而不是 all.equal,则会得到相同的结果。
为什么在第一次调用 all.equal.POSIXct 时没有选择默认参数 scale = 1?我做错了什么,还是我从根本上误解了某些东西,或者这是一个错误?
提前感谢您的帮助。