读取R中的大型CSV文件时出错

问题描述:

我想读6 + GB csv文件来做一些聚合。我正在使用以下方法;读取R中的大型CSV文件时出错

read.table('csv_file',sep =“,”,head = T,stringsAsFactors = F) read.csv(“csv_file”,as.is = T,header = F,quote =“”)

但是无论如何我都会收到如下的错误;

警告消息: 在扫描(文件,什么,n最大,九月,十二月,报价,跳过,nlines,na.strings,: EOF引号的字符串内

错误函数read.table中(文件=文件,头=头,月=月,报价=报价,:比列名 多个列

我看到很多人都提出了类似的错误,但没有任何的建议,为我工作至今

欣赏。如果有人可以对此进行阐述。 感谢广告万斯。

+3

的可能的复制[read.csv警告“引用的字符串内EOF”防止文件的完整阅读] (http://*.com/questions/17414776/read-csv-warning-eof-within-quoted-string-prevents-complete-reading-of-file) – SabDeM

+0

分解成较小的文件文件,看看你是否可以阅读其中每一个来确定问题出在哪里。当你有一个非常小的文件重现错误发布在那里,我们可能能够找出导致问题的原因。 – Mist

+0

另一个可能的重复(使用不同的答案,并注意'comment.char'需要和'quote'一起考虑):http://*.com/questions/17763294/all-lines-not-being执行 - 读取·维持​​同时读取-CSV-在-R/17763959 S = 4 |?0.3738#17763959 –

可了解使用建设:

table(count.fields("~/Downloads/test1.txt", sep=",", quote="", comment.char="", skip=0)) 

如果只有一对夫妻带着古怪线,那么你可以用“跳过”不同的值,它缩小。我没有在文件上使用过这么大的文件,但是在文件大小的一半上使用过。 count.fields结果也可用于识别行号与特定的字段号之间的差异。如果你得到的东西,表明10行比列的预期数量少一说20,然后做到这一点:

which( 
    count.fields("~/Downloads/test1.txt", sep=",", quote="", comment.char="", skip=0) == 9)