我想使用setorder对数据表进行排序。
library(data.table)
DT <- data.table(timestamp=c(as.POSIXct("2013-01-01 17:54:23.577"),
as.POSIXct("2013-01-01 17:54:23.568"),
as.POSIXct("2013-01-01 17:54:23.909"),
as.POSIXct("2013-01-01 17:54:23.901")))
setorder(DT,timestamp)
print(DT)
输出:
timestamp
1: 2013-01-01 17:54:23.568
2: 2013-01-01 17:54:23.576
3: 2013-01-01 17:54:23.908
4: 2013-01-01 17:54:23.901
Setorder无法正确排序数据表,我不知道为什么。是否有可能以某种方式提高灵敏度或任何其他可能的解决方案?
答案 0 :(得分:3)
从帮助文件中:
数字类型的列(即double)在计算顺序时通过defalult舍入其最后两个字节,以避免由于精确表示浮点数的限制而导致的任何意外行为。看看setNumericRounding了解更多信息。
所以这可能是由于在分拣过程中这些列的舍入。您可以使用
将其调整为不圆setNumericRounding(0)