В дополнение к различиям в численном толерантности и сравнения режима хранения, в отличие от all.equal()
, identical
также проверяет равенство связанных сред. Обычные объекты в R обычно не имеют связанных сред - они чаще всего связаны с объектами function
и formula
(и terms
). Но, чтобы проиллюстрировать, я дам два тривиальных объекты разные (вновь созданные) среды:
x <- 2; environment(x) <- new.env()
y <- 2; environment(y) <- new.env()
all.equal(x,y) ## TRUE
identical(x,y) ## FALSE
Там является ignore.environment
аргумент:
ignore.environment: логический, указывающий, если их окружение должны быть проигнорированы, когда сравнение закрытий.
, но поскольку он применяется только при сравнении замыканий (то есть функций), это не имеет никакого значения в этом случае - и это не будет иметь значения при сравнении формул или терминов объектов.
спасибо, «нет толерантности» не является ключевым: 'all.equal (8,0, 9,0, допуск = 1,0)' – mariotomo
Другим примером является то, что 'идентичны()' будут говорить Интс и тоскует различны, даже если у них есть одинаковое значение, тогда как 'all.equal()' будет говорить, что они равны. – smci