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

时间:2017-11-22 04:43:25

标签: r datatable fread

我正在尝试在R中读取一个巨大的数据集(> 25GB)。它不适合我的PC内存。但我想也许有可能使用数据,如果它是压缩(RData)格式。作为该过程的一部分,我还必须将列类更改为字符,因为某些列包含数字和字符串的混合。如何在fread

中完成此操作

第一部分总是很容易,我们可以使用例如以下代码读取10m行:

part1 <- fread(filename,sep = " ", stringsAsFactors = FALSE, header = TRUE, 
      nrows = 10000000,showProgress = TRUE, 
      colClasses=c(AA="character",BB="character"))

但是如果我尝试读取文件的第二部分,我总是会收到错误。我使用以下代码跳过前面已经读过的前1000000行。我也将header设置为FALSE

part2 <- fread(filename,sep = " ", stringsAsFactors = FALSE, header = FALSE, 
      nrows = 10000000,skip=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或我是否必须使用其他包?

0 个答案:

没有答案