我试图在 R 中读取一个巨大的数据集(> 25GB)。它不适合我的 PC 内存。但我认为,如果数据采用压缩 (RData) 格式,也许可以处理数据。作为该过程的一部分,我还必须将列类更改为字符,因为某些列包含数字和字符串的混合。这怎么能做到fread呢?
第一部分总是很简单,我们可以使用例如以下代码来读取 10m 行:
part1 <- fread(filename,sep = " ", stringsAsFactors = FALSE, header = TRUE,
nrows = 10000000,showProgress = TRUE,
colClasses=c(AA="character",BB="character"))
Run Code Online (Sandbox Code Playgroud)
但是如果我尝试读取文件的第二部分,我总是会收到错误消息。我正在使用以下代码跳过前 1000000 行,这些行之前已经读入。我也设置header为FALSE
part2 <- fread(filename,sep = " ", stringsAsFactors = FALSE, header = FALSE,
nrows = 10000000,skip=10000000,showProgress = TRUE,
colClasses=c(AA="character",BB="character"))
Run Code Online (Sandbox Code Playgroud)
错误消息是:
Error in fread() : Column name 'AA' in colClasses[[1]] not found
Run Code Online (Sandbox Code Playgroud)
注意:如果我们设置了header = TRUE,错误信息仍然会出现。
我无法给出这种大小的示例数据集,但我想问题很简单,如果我们使用skip,列名就会丢失,然后当我们设置colClasses. 有什么方法可以使用 fread 还是必须使用其他软件包?
| 归档时间: |
|
| 查看次数: |
573 次 |
| 最近记录: |