我有两个数据框,每个都有一列integer64
类型。当我使用 比较数据帧时all.equal()
,我得到TRUE
,即使值大不相同:
library(bit64)
original <- data.frame("a" = as.integer64(c(2, 3, 6)), "b" = c("second", "data", "column"))
new <- data.frame("a" = as.integer64(c(2, 30000, 6000001)), "b" = c("second", "data", "column"))
all.equal(original, new)
# TRUE
我知道all.equal()
可以接受非精确匹配(例如四舍五入),而严格精确匹配identical()
是更安全的选择,但为什么all.equal()
说这两个数据帧是相同的呢?有没有办法将数据框与有用的细节进行比较,all.equal()
但同时拒绝这两个表是等效的?