[英]all.equal() with integer64 data type
我有兩個數據框,每個數據框都有一個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()
的有用細節進行比較,但同時拒絕這兩個表是等效的?
我無法重現:
R> library(bit64)
R> original <- data.frame(a=as.integer64(c(2, 3, 6)),
+ b=c("second", "data", "column"))
R> new <- data.frame(a=as.integer64(c(2, 30000, 6000001)),
+ b=c("second", "data", "column"))
R> all.equal(original, new)
[1] "Component “a”: Mean relative difference: 669999"
R>
你運行的是什么版本的bit64
?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.