r- read.csv/read.table更改数值



这是最奇怪的错误,看来read.csv/read.table更改数字太大时的值

read.table(text="a,b
1123363730,5000000000000011111",sep=",",header=TRUE)
#            a                   b
# 1 1123363730 5000000000000011264

B的值更改!

read.table(text="a,b
1123363730,5000000000000011111",sep=",")
#           V1                  V2
# 1          a                   b
# 2 1123363730 5000000000000011111

现在值正确(作为字符串(

我想这与数字大的数字有关,但这很烦人,我如何确保加载CSV中的内容?

您正在尝试导入一个太大的整数 - 它将以科学符号为圆形和表达。

您可以看到超过1:

的最大整数的效果
> str(.Machine$integer.max)
 int 2147483647
> str(.Machine$integer.max + 1)
 num 2.15e+09

i 相信 最大整数是每台唯一的机器和R配置的独特之处(如果我错了,请有人纠正我(。

library(bit64)
tst <- read.table(text="a,b
                  1123363730,5000000000000011111",sep=",",
                  header=TRUE, colClasses = "integer64")
print(tst$b)

最新更新