2016-11-28 84 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