Obtengo resultados inesperados del método all.equal en R, específicamente la implementación de POSIXct, all.equal.POSIXct.Resultado inesperado de all.equal.POSIXct
t <- Sys.time()
isTRUE(all.equal(t, t+1))
devuelve TRUE, y
isTRUE(all.equal(t, t+1, scale = 1))
devuelve false.
Sin embargo, si nos fijamos en la definición de all.equal.POSIXct, se puede ver que el parámetro de escala tiene un defecto de 1:
> all.equal.POSIXct
function (target, current, ..., scale = 1)
{
check_tzones(target, current)
NextMethod("all.equal")
}
<bytecode: 0x22eac90>
<environment: namespace:base>
se obtienen los mismos resultados si se llama explícitamente a todos. equal.POSIXct en lugar de all.equal.
¿Por qué no se selecciona el parámetro predeterminado scale = 1 en la primera llamada a all.equal.POSIXct? ¿Estoy haciendo algo mal, o básicamente he malentendido algo, o es esto un error?
Gracias de antemano por cualquier ayuda.
Esta es una gran pregunta. Ambas respuestas a continuación sugieren que podría ser un error, por lo que he presentado un informe de error en https://bugs.r-project.org/bugzilla3/show_bug.cgi?id=14969 – Andrie
¡Genial, gracias por enviar el informe de error! ¡Estaba a punto de hacer lo mismo! – Ash