2016-11-28 85 views
0

我有以下數據:通過去除科學記數法中的數據不顯示正確

dput(mydata) 
c(5.19897453503481e+28, 3.33164060868048e+28, 4.28127522948889e+28, 
5.64348827422289e+28, 5.72642655371425e+28) 

每當刪除數據的科學記數法中的R使用該:

output <- format(mydata, scientific=FALSE); 

數據出現像即:

[1] "51989745350348091512680664620" "33316406086804775072084246080" "42812752294888867976688624200" "56434882742228873664844820404" 
[5] "57264265537142484298068002406" 

這與我在bigquery中的原始數據有什麼不同?有誰知道爲什麼?

+0

你是什麼意思與「有點不同」?我懷疑你偶然發現了R double的有限精度(約15位數),但如果不是這種情況,請更具體一些。 –

+0

lats的兩位數字是不同的,它似乎有點R輪數據,我沒有找到這些差異的模式來解釋這裏。 – MFR

+0

_last_兩位數?在第一個數字的情況下,你的意思是'20'(帶''科學= FALSE''')?你怎麼知道它應該是什麼樣子?如果使用標準的R'''numeric''',則只有大約15位是可靠的。如果您需要更多數字,請使用多精度數字(建議使用Rmpfr)。 –

回答

1

我們可以使用Rmpfr

library(Rmpfr) 
mpfr(mydata, precBits = 1024) 
+0

謝謝你的解決方案,它不適合我。數據最初有字符串格式 – MFR

+0

@MFR'mpfr'應該能提供您期望的大數字的精度。在你提供的'dput'中,我發現'e + 28'作爲後綴,所以我不確定你用什麼標準來暗示'它不工作' – akrun