Нет, насколько я знаю, нет способа заставить read.table
пропускать строки, содержащие ошибки. Что вы должны сделать, это использовать функцию count.fields
, чтобы найти, сколько полей в каждой строке вашего файла, затем прочитать весь файл, удалить неправильные строки и прочитать снова. Например:
fields <- count.fields(csv_File, sep = ",")
bad <- fields != 5
lines <- readLines(csv_File)
# At this point you could display the bad lines or
# give some other information about them.
# Then delete them and read again:
lines <- lines[!bad]
f <- tempfile()
writeLines(lines, f)
read.table(f, header = FALSE, sep=",", na.strings = '')
unlink(f)
ИЗМЕНЕНО для добавления:
Следует отметить, что пакет readr
работает лучше, когда файлы содержат проблемы. Если вы используете
library(readr)
read_csv(csv_File, col_names = FALSE)
, вместо фрейма данных будет выдан «тиббл», но в противном случае он должен делать то, что вы хотите. О каждой строке, в которой возникли проблемы, будет сообщено, и общие проблемы будут сохранены в наборе данных, если вы захотите изучить их позже.