R data.table - 大id的

问题描述:

任何人都可以解释为什么这个工程就像它的工作...这似乎是一个大数字,我认为是一个问题。有没有一种方法可以解决它而不会将id列转换为字符?R data.table - 大id的

library(data.table) 
data <- data.table(id = c(11111111111111, 11111111111112)) 
data[id == 11111111111111] 
data[as.numeric(id) == 11111111111111] 
data[, .N, by = id] 
data[, .N, by = as.numeric(id)] 
data[, .N, by = as.character(id)] 

谢谢任何​​帮助!

+0

它按预期工作。你的问题是什么? '数据[,.N,通过= ID]# ID N 1:11111111111111 1 2:11111111111112 1' – akrun

+0

我得到ID N 1:1.111111e + 13 2 – Daniel

+0

我得到与前两个: ID N 1:1.111111e + 13 2 与as.character: as.characterñ 1:11111111111111 1 2:11111111111112 1 – Daniel

运行代码前设置为options(scipen=20)。这应该给你结果你想

scipen

文档:

scipen:整数。 决定以固定或指数表示法打印数值时应用的惩罚。积极的价值观倾向于固定和消极的朝向科学记数法:固定记数法将是首选的,除非它超过科比数字。

akrun提到在comment

我,使用R 3.3.2和1.10.0 data.table。

我已经更新data.table包到版本1.10.0,它工作正常。