Oltre alle differenze di tolleranza numerica e confronto delle modalità di memorizzazione, a differenza all.equal()
, identical
tests anche parità di ambienti associati. Normalmente gli oggetti in R non hanno ambienti associati - sono più comunemente associati agli oggetti function
e-(e terms
). Ma per illustrare, ti darò due oggetti banali diversi (di nuova creazione) ambienti:
x <- 2; environment(x) <- new.env()
y <- 2; environment(y) <- new.env()
all.equal(x,y) ## TRUE
identical(x,y) ## FALSE
C'è un ignore.environment
argomento:
ignore.environment: logico che indica se i loro ambienti dovrebbero essere ignorati quando confrontando chiusure.
ma poiché viene applicato solo quando si confrontano le chiusure (ovvero le funzioni), in questo caso non fa alcuna differenza, né fa la differenza quando si confrontano formule o termini oggetti.
fonte
2015-10-11 23:54:59
grazie, 'nessuna tolleranza' era la chiave: 'all.equal (8.0, 9.0, tolleranza = 1.0)' – mariotomo
Un altro esempio è che 'identico()' dirà ints e longs sono diversi, anche se hanno il stesso valore, mentre 'all.equal()' dirà che sono uguali. – smci