我在使用data.table和integer64 (package bit64)时遇到了很多困难>我的理解是integer64还不能在by子句中使用。虽然我可能在"sort“中发现了一个bug。
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 !!我说的对吗?
发布于 2014-05-09 21:53:13
更新:现在v1.9.3 (可从R-Forge获得)中实现了这一点,请参阅NEWS:
o
bit64::integer64现在在分组和连接中工作,#5369。感谢James Sams强调了UPC和Clayton Stanley。
提醒:fread()能够检测和读取integer64已经有一段时间了。
在上面的OP示例中:
test4
# IDFD CDVCA NUMSEQ
# 1: 360627720722618433 2013-03-13T09:36:07.795 213326801534975 ## sorted right
# 2: 360627720722618433 2013-03-13T09:36:07.795 213326816542720发布于 2021-01-12 00:20:59
您可以在不更改字段值的情况下,通过执行以下操作来解决此问题:
df[order(as.numeric(as.character(myint64field)), myotherfield),]很明显,你的表现会受到影响。
https://stackoverflow.com/questions/18444036
复制相似问题