1

我有一个 200,000 行的文件,我正在尝试导入,但出现错误:

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

查看该行less -N(只需键入“39000e”以跳到您想要的行)我看不出有什么区别,所以我曾经split -l 30000 optimized_bail_1127.csv将它分成块,以便我可以尝试导入较小的部分并附加它们(或检查它们) .

split生成一堆名为“xaa”,“xab”,... xag 等的文件。所以我想做类似的事情:

files <- dir(pattern="xa[a-g]")
for(f in files) {
  print (f)
  f <- read.table(f,sep = '|')
}

获取每个子文件的表。我也希望它只是跳过错误(打印它们,但继续前进),这样我至少可以看到我可以干净地导入其中的多少。

4

2 回答 2

1

为了查看错误消息但继续循环,您可以执行以下操作try()

FSU <- function() {
       for(i in 1:100){
            if(i == 23) lm(NA~NA)
            }
       print("you made it!")
       }

> FSU()
Error in terms.formula(formula, data = data) : 
  invalid term in model formula

使用try()

DontFSU <- function() {
       for(i in 1:100){
            if(i == 23) try(lm(NA~NA))
            }
       print("you made it!")
       }

> DontFSU()
Error in terms.formula(formula, data = data) : 
   invalid term in model formula
[1] "you made it!"
于 2012-11-28T17:45:55.593 回答
1

尝试fill=Tread.csv(...,sep='|')

于 2012-11-28T17:09:20.220 回答