我正在尝试在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或我是否必须使用其他包?