У меня есть цикл, который должен принимать все файлы, которые соответствуют указанному Regex.
Однако некоторые файлы, очевидно, не имеют правильного количества столбцов во всех строках. Поэтому цикл вылетает.
Теперь я хочу выяснить, какие файлы вызывают эти ошибки. Есть сотни файлов, но только некоторые из них вызывают эту ошибку.
Я знаю из Java, что теперь я бы попытался составить предложение try-catch и напечатать имя файлов, чтобы найти их, посмотреть и стереть / изменить их. Я не могу иметь дело с этим в R, хотя:
#PATH WITH ALL FILES
files <- list.files(path="/Users/Test/Trackingpoint",
pattern="Trackingpoint.*\\.csv\\.gz", full.names=TRUE, recursive=FALSE)
Trackingpoint_Tables <-
tryCatch({
lapply(files, function(x) {
a <- read.table(gzfile(x), sep = "\t", header = TRUE)
})
}, warning = function(w) {
print(w)
}, error = function(e) {
print(e)
})
Как вы знаете, в w и e у меня есть не сам файл, а ошибка. Как я могу напечатать имя файла и, соответственно, любую другую информацию из самого файла?
Я хочу, чтобы мой код игнорировал ошибки и просто продолжал, но сообщал мне, где происходит эта ошибка (какой файл).
Прямо сейчас, это только говорит:
<simpleError in scan(file = file, what = what, sep = sep, quote = quote, dec = dec, nmax = nrows, skip = 0, na.strings = na.strings, quiet = TRUE, fill = fill, strip.white = strip.white, blank.lines.skip = blank.lines.skip, multi.line = FALSE, comment.char = comment.char, allowEscapes = allowEscapes, flush = flush, encoding = encoding, skipNul = skipNul): line 24610 did not have 44 elements>