.csv文件中的多行在R中没有相同数量的元素

时间:2014-07-13 06:24:42

标签: r csv skip

我试图将一个非常大的.csv文件读入R

OrigTotalPumping <- read.table("/Users/Larry/Desktop/OrigTotalPumping/MasterOrigFt3.csv", 
                               header=F, sep=",")

我收到错误

  

扫描错误(文件,内容,nmax,sep,dec,quote,skip,nlines,na.strings,:    第19437行没有7个元素

所以我试图简单地跳过该行,但是文件中的多行发生了同样的错误,并且文件太大而无法打开并手动修复。例如

Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,  : 
  line 2 did not have 7 elements

Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,  : 
  line 19439 did not have 7 elements

如何设置它以便它可以读取此文件,尽管有这个问题?

2 个答案:

答案 0 :(得分:0)

不要跳过它,但最好将此代码置于循环和trycatch块下。并对已发布的记录/记录进行错误处理。 如何在R中执行trycatch: 以下是same

的链接

答案 1 :(得分:0)

您可以使用这样的awk预处理文件来创建清理文件,其中每行有7个字段吗?

awk 'NF==7' original.csv > cleaned.csv

或者,如果您的字段分隔符是逗号

awk -F',' 'NF==7' original.csv > cleaned.csv

或者,基于@Spacedman的想法,您可以使用awk向您显示没有7个字段的“不快乐”行

awk -F',' 'NF!=7 {print "Line " NR $0}' yourfile.csv | more