all.equal
говорит вам, что атрибуты разные.Я предполагаю, что это имена строк.
Проверка attributes(ddd.old)[[2]]
против attributes(ddd.new)[[2]]
.Сортировка не изменяет имена строк, поэтому вы получаете их в другом порядке.
Вы можете стереть их с помощью:
rownames(ddd.old) <- NULL
rownames(ddd.new) <- NULL
или сделать шаг раньше, добавив аргумент к data.frame
:
ddd.old <- data.frame(ddd.old, stringsAsFactors=FALSE, row.names=NULL)
После этого хеш также должен быть равен.
В качестве альтернативы используйте arrange
из пакета plyr, он удалит имена строк:
ddd.new <- read.table("ddd.table.new.txt",header=TRUE,stringsAsFactors=FALSE)
ddd.old <- read.table("ddd.table.old.txt",header=TRUE,stringsAsFactors=FALSE)
ddd.new <- arrange(ddd.new, atc_code, ddd, adm_route)
ddd.old <- arrange(ddd.new, atc_code, ddd, adm_route)
all.equal(ddd.new, ddd.old)
# TRUE