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 の代わりに all.equal.POSIXct を明示的に呼び出すと、同じ結果が得られます。
all.equal.POSIXct への最初の呼び出しで、デフォルトのパラメーター scale = 1 が取得されないのはなぜですか? 私は何か間違ったことをしていますか、根本的に何かを誤解していますか、それともこれはバグですか?
助けてくれてありがとう。