将带有大量数字的 .csv 导入 R 而无需科学记数法

Import a .csv with large numbers into R without scientific notation

我有一个 Microsoft Excel (.xlsx) 文件,我想将其加载到 R 中。我之前已经这样做过并使用了 read.csv(),它总是工作正常,但是有了这个文件发生了一些奇怪的事情。一列似乎出了点问题,它包含行名称和值为 13 位的大数字。此专栏是 - 无论我如何尝试将文件加载到 R - 转换为其科学记数法。

问题可以模拟如下:在Excel中,先输入第一列 行,一个随机的行名。在第一列第二行中键入一个随机的大数字,例如6345157890027。然后将文件另存为.csv。假设我想在 R 中打开这个文件: TestData <- read.csv(file = "Test.csv", head = TRUE) 然后 View(TestData)

号码6345157890027现在显示为6.345158e+12,导入时某处丢失信息。现在,我尝试通过多种方式解决这个问题:

然而,其中 none 解决了问题:该值似乎总是以科学记数法出现。有人知道确保 Excel 或 R 不会将大数转换为科学记数法的方法吗?

您可以使用 bit64 包中的 as.bit64 函数。只需确保不要使用 64 位数字来引用其他 R 对象。此解决方案适用于 +-2^63 范围内的数字。

我使用 format 函数解决了这个问题,正如 rnso (see How to prevent scientific notation in R? 在另一个 post 中提出的那样:

> xx = 100000000000
> xx
[1] 1e+11
> format(xx, scientific=F)
[1] "100000000000"

对于我在数据框中错误显示的列也非常有效

可以只声明 options(scipen = 999) 并确保环境不会将大数更改为指数形式。