在 R 中读取大型 csv 文件

Reading large csv file in R

我有许多不同大小的 csv 文件,但都有些大。使用 read.csv 将它们读入 R 所花费的时间比我一直耐心等待的时间(几个小时)要长。我设法用 data.tablefread.

非常快(不到一分钟)读取了最大的文件 (2.6 gb)

当我尝试读取一半大小的文件时出现问题。我收到以下错误消息:

Error in fread("C:/Users/Jesper/OneDrive/UdbudsVagten/BBR/CO11700T.csv",:

Expecting 21 cols, but line 2557 contains text after processing all cols. It is very likely that this is due to one or more fields having embedded sep=';' and/or (unescaped) '\n' characters within unbalanced unescaped quotes.

fread cannot handle such ambiguous cases and those lines may not have been read in as expected. Please read the section on quotes in ?fread.

通过研究,我找到了将 quote = "" 添加到代码中的建议,但这对我没有帮助。我试过使用 bigmemory 包,但是当我尝试时 R 崩溃了。我使用的是 64 位系统,内存为 8 GB。

我知道有很多关于这个主题的话题,但我无法用任何解决方案解决问题。我真的很想使用 fread(考虑到我对大文件的良好体验),似乎应该有某种方法可以让它工作——只是想不通。

通过安装 SlickEdit 并使用它来编辑引起问题的行解决了这个问题。和号、引号和撇号等一些字符被一致地编码为包括分号——例如& 而不仅仅是 &。由于分号是文本文档中的分隔符,因此导致 fread.

读取时出现问题