如何准确地读取R中的大数字并对其执行算术运算?

如何准确地读取R中的大数字并对其执行算术运算?,r,R,我正在读取一个csv文件,其中包含一些非常大的数字,如132770799760,但R会自动将其转换为1.32771e+12。我试着给它分配了一个双类,但没有成功,因为它已经是一个四舍五入的值了。 我查过其他类似的帖子。人们说它不是1.67E+12格式,只是不能完全使用默认值打印。R读得很好,整数就在那里。但当我试图对它们做一些算术运算时,它就是不对。 例如: test[1,8] [1] 1.32681e+12 test[2,8] [1] 1.32681e+12 test[2,8]-test[1,

我正在读取一个csv文件,其中包含一些非常大的数字,如132770799760,但R会自动将其转换为1.32771e+12。我试着给它分配了一个双类,但没有成功,因为它已经是一个四舍五入的值了。 我查过其他类似的帖子。人们说它不是1.67E+12格式,只是不能完全使用默认值打印。R读得很好,整数就在那里。但当我试图对它们做一些算术运算时,它就是不对。 例如:

test[1,8]
[1] 1.32681e+12
test[2,8]
[1] 1.32681e+12
test[2,8]-test[1,8]
[1] 0

但我知道他们是不同的数字

那不算大。这仅仅是一个代表性问题。试试这个:

options(digits=22)

选项'digits'默认为7,这就是为什么您看到您所做的事情。所有12位数字都被读取和存储,但默认情况下不打印。

Excel允许自定义格式:格式化/单元格/自定义和输入0

如果差值为0,则它们没有区别。我猜test[2,8]==test[1,8]将返回FALSE。@bondedust实际上返回TRUE。我想我已经发现了问题所在。问题是我不能在我的csv文件中存储大量的数字!它总是显示科学的格式,所以R不能准确地阅读它!有什么解决办法吗?那么,你真的应该发布更多的细节,你不同意吗?并且一定要在read.table中查找colclass,以便您可以将它们作为字符读入。@BondedDust-Sure。我的意思是,例如,当我从excel生成csv文件时,1329100082670将显示为1.329E+12。我不能把它完全展示出来,我不知道为什么。然后我发现R无法准确读取csv中的1.329E+12,就像1329100082670一样。似乎我发现了真正的问题…我无法在csv文件中存储大量数字。。。它总是显示科学的格式,所以R不能准确地阅读它!嗯,它有点大。它大于整数大小的旧限制。