Además de las diferencias en la tolerancia numérica y comparación de modo de almacenamiento, a diferencia de all.equal()
, identical
también prueba la igualdad de entornos asociados. Los objetos normales en R normalmente no tienen entornos asociados, sino que están más comúnmente asociados con los objetos function
y formula
(y terms
). Pero para ilustrar, voy a dar dos objetos triviales diferentes (de nueva creación) ambientes:
x <- 2; environment(x) <- new.env()
y <- 2; environment(y) <- new.env()
all.equal(x,y) ## TRUE
identical(x,y) ## FALSE
hay un argumento ignore.environment
:
ignore.environment: lógica que indica si sus entornos deben ser ignorados cuando comparando cierres.
pero dado que solo se aplica al comparar cierres (es decir, funciones), en este caso no hace la diferencia, ni hará una diferencia al comparar fórmulas o términos de objetos.
gracias, 'no tolerancia' fue la clave: 'all.equal (8.0, 9.0, tolerancia = 1.0)' – mariotomo
Otro ejemplo es que 'idéntico()' dirá que las entradas y las longitudes son diferentes, incluso si tienen el mismo valor, mientras que 'all.equal()' dirá que son iguales. – smci