R中的科学计数法问题

PKu*_*mar 5 r

我有一个 20 位数字的 ID 变量。一旦我读取 R 中的数据,它就会更改为科学记数法,然后如果我将相同的 id 写入 csv 文件,ID 的值就会更改。

例如,运行下面的代码应该将 x 的值打印为“ 12345678912345678912 ”,但它打印“ 12345678912345679872 ”:

代码:

options(scipen=999)

x <- 12345678912345678912
Run Code Online (Sandbox Code Playgroud)

打印(x)

输出:

[1] 12345678912345679872
Run Code Online (Sandbox Code Playgroud)

我的问题是:

1)为什么会发生这种情况?

2)如何解决这个问题?

我知道这与 R 中数据类型的存储有关,但我仍然认为应该有某种方法来处理这个问题。我希望我对这个问题很清楚。

我不知道是否有人问过这个问题,所以请给我一个链接(如果它是重复的)。我将删除这篇文章

我已经经历过这个,所以我可以解决我的问题,但我无法解决它。

任何帮助将不胜感激。谢谢

Cat*_*ath 1

为了避免由于数字存储/表示而导致的问题,您可以使用ID选项直接将变量导入为字符colClasses,例如,如果使用read.csv并导入包含该\xc3\x8cD列和另一个数字列的 data.frame:

\n\n
mydata<-read.csv("file.csv",colClasses=c("character","numeric"),...)\n
Run Code Online (Sandbox Code Playgroud)\n