我有一个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 = '|')
}
获取每个子文件的表。我也喜欢它只是跳过错误(打印它们,但继续),所以我至少可以看到有多少这些我可以干净地导入。
答案 0 :(得分:1)
尝试fill=T
或read.csv(...,sep='|')
答案 1 :(得分: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!"