我需要将data.table
字符列转换为数字。转换后,不知何故,独特的数值似乎不再是唯一的。我认为它可能与大数值有关。关于如何解决这个问题的任何想法?
library(data.table)
options(scipen = 20)
DT = data.table(col_a = letters[1:5],
col_b = as.character(72224192551488:72224192551492))
按col_b输出条目数(按预期方式)
DT[, .N, by = col_b]
col_b N
1: 72224192551488 1
2: 72224192551489 1
3: 72224192551490 1
4: 72224192551491 1
5: 72224192551492 1
将col_b转换为数字
DT[, col_b := as.numeric(col_b)]
现在输出看起来不一样了。我期待相同的输出
DT[, .N, by = col_b]
col_b N
1: 72224192551488 5
答案 0 :(得分:0)
看看summary(DT$col_b)
:
Min. 1st Qu. Median Mean 3rd Qu. Max.
72220000000000 72220000000000 72220000000000 72220000000000 72220000000000 72220000000000
我的猜测是将它转换为数字以某种方式将其四舍五入。奇怪的是,摘要与我们所看到的不符:
> DT
col_a col_b
1: a 72224192551488
2: b 72224192551489
3: c 72224192551490
4: d 72224192551491
5: e 72224192551492