【发布时间】:2016-02-03 08:17:39
【问题描述】:
我正在处理一个数据集,该数据集包含多个表示整数 ID 号的列(例如 transactionId 和 accountId)。这些 ID 号的长度通常为 12 位,这使得它们太大而无法存储为 32 位整数。
在这种情况下最好的方法是什么?
- 以字符串形式读取 ID。
- 使用 bit64 包将 ID 读取为 integer64。
- 将 ID 读取为数字(即双精度)。
我已被警告过使用双精度来测试相等性的危险,但我不确定在将它们用作 ID 的情况下这是否会成为问题,我可能会基于它们进行合并和过滤,但从不这样做身份证号码的算法。
从直觉上看,字符串似乎应该更慢地测试相等性并进行合并,但实际上可能并没有太大区别。
【问题讨论】:
-
从概念上讲,这些是字符(甚至是因子变量),我会这样对待它们。使用字符键合并 data.table 非常快。
标签: r