在R中读取大型csv文件

时间:2016-01-20 10:17:36

标签: r csv data.table fread bigdata

我有许多不同大小的csv文件,但都有点大。使用read.csv将其读入R需要的时间比我耐心等待到目前为止(几个小时)要长。我设法用data.table fread非常快(不到一分钟)读取了最大的文件(2.6 gb)。

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

  

fread("C:/Users/Jesper/OneDrive/UdbudsVagten/BBR/CO11700T.csv"中的错误,

     

期望21个cols,但是2557行包含处理完所有后的文本   COLS。这很可能是由于一个或多个字段所致   不平衡中的嵌入式sep=';'和/或(未转义)'\n'个字符   未转义的报价。

     

fread无法处理这些模棱两可的案件   可能没有按预期读入行。请阅读本节   引用?fread

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

我知道在这个问题上有很多线索,但我还没有能够解决任何解决方案的问题。我真的很想使用fread(鉴于我对较大文件的良好体验),似乎应该有一些方法可以使它工作 - 只是无法解决它。

1 个答案:

答案 0 :(得分:1)

通过安装SlickEdit并使用它来编辑导致问题的行来解决此问题。像&符号,引号和撇号这样的一些字符一直被编码为包括分号 - 例如&而不只是&amp ;.由于分号是文本文档中的分隔符,因此在使用fread进行阅读时会出现问题。