这是最奇怪的错误,看来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)