通过R中的fread以块形式读入数据

通过R中的fread以块形式读入数据,r,datatable,fread,R,Datatable,Fread,我正试图在R中读取一个巨大的数据集(>25GB)。它不适合我的PC内存。但我认为,若数据是压缩(RData)格式的,那个么处理这些数据是可能的。作为该过程的一部分,我还必须将列类更改为character,因为有些列包含数字和字符串的混合。如何在fread中执行此操作 第一部分总是很简单,我们可以使用以下代码读取10m行: part1 <- fread(filename,sep = " ", stringsAsFactors = FALSE, header = TRUE, nr

我正试图在R中读取一个巨大的数据集(>25GB)。它不适合我的PC内存。但我认为,若数据是压缩(RData)格式的,那个么处理这些数据是可能的。作为该过程的一部分,我还必须将列类更改为character,因为有些列包含数字和字符串的混合。如何在fread中执行此操作

第一部分总是很简单,我们可以使用以下代码读取10m行:

part1 <- fread(filename,sep = " ", stringsAsFactors = FALSE, header = TRUE, 
      nrows = 10000000,showProgress = TRUE, 
      colClasses=c(AA="character",BB="character"))
错误消息为:

Error in fread()  :  Column name 'AA' in colClasses[[1]] not found
注意:如果我们设置
header=TRUE
,错误消息仍然会出现


我不能给出这种大小的示例数据集,但我想问题只是如果我们使用
skip
,列名称会丢失,然后当我们设置
colClasses
时就不能使用它们。有没有办法使用fread或者我必须使用其他软件包?

您是否尝试过在不更改列名的情况下读取数据?是的,我想您的意思是更改列类?我遇到了如下错误:
将第12列碰撞到数据行2647747上的字符,字段包含“AC”…
它实际上可能是有害的,因为所有以前读入的值都会简单地转换为字符(不一定是无损的)您能运行此代码并检查是否有任何错误
part1与以前的代码相同,但右下角是nrows吗?我不希望出现错误,因为代码也会以较大的NROW运行。但是我可以试试。是的,请试试,我怀疑第2647747排有什么问题
Error in fread()  :  Column name 'AA' in colClasses[[1]] not found