Я получаю неожиданный результат от метода all.equal в R, в частности от реализации POSIXct, all.equal.POSIXct.
t <- Sys.time()
isTRUE(all.equal(t, t+1))
возвращает ИСТИНА и
isTRUE(all.equal(t, t+1, scale = 1))
возвращает ЛОЖЬ.
Однако, если вы посмотрите на определение all.equal.POSIXct, вы увидите, что параметр масштаба по умолчанию равен 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.
Почему параметр по умолчанию scale = 1 не используется при первом вызове all.equal.POSIXct? Я что-то делаю не так, или я что-то в корне неправильно понял, или это баг?
Заранее благодарю за любую помощь.