R read.csv截断19位客户ID的数字

R read.csv截断19位客户ID的数字,r,R,我有一个19位的客户ID,在使用read.csv导入时,R正在更改最后几位,我无法读取正确的客户ID data= read.csv("filename.csv") options("scipen"=100, "digits"=19) R以32位整数或64位双精度存储数字。这两种格式都不能存储19位数字,因此您希望以字符串形式读取客户ID。但是如果它都是数字,R会将它检测为一个数字 因此,解决方案是告诉read.csv()它是一个字符串,例如 data <- read.csv("filen

我有一个19位的客户ID,在使用read.csv导入时,R正在更改最后几位,我无法读取正确的客户ID

data= read.csv("filename.csv")
options("scipen"=100, "digits"=19)

R以32位整数或64位双精度存储数字。这两种格式都不能存储19位数字,因此您希望以字符串形式读取客户ID。但是如果它都是数字,R会将它检测为一个数字

因此,解决方案是告诉read.csv()它是一个字符串,例如

data <- read.csv("filename.csv", colClasses="character")

data我假设数据被读取为
浮点数
。除了作为
字符串
读取之外,还有一个选项是使用
位64

library(bit64)
data <- read.csv('filename.csv', colClasses='integer64')
库(位64)

数据使用
数字
参数:

read.csv("filename.csv", numerals = "no.loss")

有关
数字
参数的信息,请参见。

这是字段分隔的问题吗?给我们一个数据的小预览。R不仅仅是切分数字。@ECII您忘记了整数限制。这假设所有列都可以转换为a(长)整数。如果是混合数据,则可能不是这样。格罗森迪克的解决方案避免了这种情况。@PaulBailey是的,你是对的。我是这样假设的,我认为G.Grothendieck的解决方案更一般。