首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是我发现的data.table和integer64中的错误吗

是我发现的data.table和integer64中的错误吗
EN

Stack Overflow用户
提问于 2013-08-26 20:25:39
回答 2查看 344关注 0票数 1

我在使用data.tableinteger64 (package bit64)时遇到了很多困难>我的理解是integer64还不能在by子句中使用。虽然我可能在"sort“中发现了一个bug。

代码语言:javascript
复制
library(data.table)
library(bit64)

test4 <- structure(list(IDFD = c("360627720722618433", "360627720722618433"
), CDVCA = c("2013-03-13T09:36:07.795", "2013-03-13T09:36:07.795"
), NUMSEQ = structure(c(1.05397451390436e-309, 1.05397443975625e-309
), class = "integer64")), .Names = c("IDFD", "CDVCA", "NUMSEQ"
), row.names = c(NA, -2L), class = "data.frame")

str(test4)
'data.frame':   2 obs. of  3 variables:
 $ IDFD  : chr  "360627720722618433" "360627720722618433"
 $ CDVCA : chr  "2013-03-13T09:36:07.795" "2013-03-13T09:36:07.795"
 $ NUMSEQ:Class 'integer64'  num [1:2] 1.05e-309 1.05e-309

test4 <- as.data.table(test4)

str(test4)
Classes ‘data.table’ and 'data.frame':  2 obs. of  3 variables:
 $ IDFD  : chr  "360627720722618433" "360627720722618433"
 $ CDVCA : chr  "2013-03-13T09:36:07.795" "2013-03-13T09:36:07.795"
 $ NUMSEQ:Class 'integer64'  num [1:2] 1.05e-309 1.05e-309
 - attr(*, ".internal.selfref")=<externalptr> 

setkey(test4,IDFD,CDVCA,NUMSEQ)
test4
                 IDFD                   CDVCA          NUMSEQ
1: 360627720722618433 2013-03-13T09:36:07.795 213326816542720
2: 360627720722618433 2013-03-13T09:36:07.795 213326801534975 #THIS IS NOT SORTED !!

我说的对吗?

EN

回答 2

Stack Overflow用户

发布于 2014-05-09 21:53:13

更新:现在v1.9.3 (可从R-Forge获得)中实现了这一点,请参阅NEWS

o bit64::integer64现在在分组和连接中工作,#5369。感谢James Sams强调了UPC和Clayton Stanley。

提醒:fread()能够检测和读取integer64已经有一段时间了。

在上面的OP示例中:

代码语言:javascript
复制
test4
#                  IDFD                   CDVCA          NUMSEQ
# 1: 360627720722618433 2013-03-13T09:36:07.795 213326801534975 ## sorted right
# 2: 360627720722618433 2013-03-13T09:36:07.795 213326816542720
票数 2
EN

Stack Overflow用户

发布于 2021-01-12 00:20:59

您可以在不更改字段值的情况下,通过执行以下操作来解决此问题:

代码语言:javascript
复制
df[order(as.numeric(as.character(myint64field)), myotherfield),]

很明显,你的表现会受到影响。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18444036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档