在 R 中读取大型 csv 文件
Reading large csv file in R
我有许多不同大小的 csv 文件,但都有些大。使用 read.csv
将它们读入 R 所花费的时间比我一直耐心等待的时间(几个小时)要长。我设法用 data.table
的 fread
.
非常快(不到一分钟)读取了最大的文件 (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
.
读取时出现问题
我有许多不同大小的 csv 文件,但都有些大。使用 read.csv
将它们读入 R 所花费的时间比我一直耐心等待的时间(几个小时)要长。我设法用 data.table
的 fread
.
当我尝试读取一半大小的文件时出现问题。我收到以下错误消息:
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
.