r - R - 遍历目录会引发错误,但我不知道在哪里(尝试并捕获)
问题描述
我有一个循环,它应该获取所有符合提供的正则表达式的文件。但是,某些文件的所有行中的列数显然不正确。因此,循环崩溃。我现在确实想找出导致这些错误的文件。有 100 个文件,但只有少数会导致此错误。我从 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>
解决方案
一个简单的从read.table
toread.csv
和的改变fill=TRUE
就足够了。
推荐阅读
- python - 有条件追加
- mysql - 如何在 MySQL 全文搜索中将一段精确的字符串与句号匹配?
- visual-studio - 如何包含类库引用的 nuget 包
- python - 不和谐机器人欢迎消息不起作用.py
- node.js - 使用 Express.js 的正向代理(打字稿)
- javascript - 尝试使用 JavaScript 来实现它,但脚本似乎有问题
- c++ - 如何在 Eigen 中有效地将稀疏矩阵的特定行和列设置为零
- sql - 有没有其他方法可以提高执行速度。目前以下查询需要 6 秒才能执行
- sql - 如何在 SQL 子查询中选择超过 1 个值
- python - 删除列表中的 0 值