簡體   English   中英

all.equal() 與 integer64 數據類型

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM