mi sto uscita inaspettata dal metodo all.equal in R, in particolare l'implementazione per POSIXct, all.equal.POSIXct.uscita imprevista da all.equal.POSIXct
t <- Sys.time()
isTRUE(all.equal(t, t+1))
ritorna vero, e
isTRUE(all.equal(t, t+1, scale = 1))
restituisce false.
Tuttavia, se si guarda alla definizione di all.equal.POSIXct, si può vedere che il parametro di scala ha un valore predefinito di 1:
> all.equal.POSIXct
function (target, current, ..., scale = 1)
{
check_tzones(target, current)
NextMethod("all.equal")
}
<bytecode: 0x22eac90>
<environment: namespace:base>
si ottiene lo stesso risultato se si chiama in modo esplicito tutti. equal.POSIXct invece di all.equal.
Perché non è il parametro di scala di default = 1 viene raccolto nella prima chiamata a all.equal.POSIXct? Sto facendo qualcosa di sbagliato, o ho fondamentalmente frainteso qualcosa, o è un bug?
Grazie in anticipo per qualsiasi aiuto.
Questa è una grande domanda. Entrambe le risposte suggeriscono che potrebbe essere un bug, quindi ho presentato una segnalazione di bug all'indirizzo https://bugs.r-project.org/bugzilla3/show_bug.cgi?id=14969 – Andrie
Fantastico, grazie per aver inviato il bug report! Stavo per fare lo stesso! – Ash