2016-12-30 86 views
-2

任何人都可以解釋爲什麼這個工程就像它的工作...這似乎是一個大數字,我認爲是一個問題。有沒有一種方法可以解決它而不會將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

回答

0

運行代碼前設置爲options(scipen=20)。這應該給你結果你想

scipen

文檔:

scipen:整數。 決定以固定或指數表示法打印數值時應用的懲罰。積極的價值觀傾向於固定和消極的朝向科學記數法:固定記數法將是首選的,除非它超過科比數字。

0

akrun提到在comment

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

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