【发布时间】:2017-03-24 07:54:51
【问题描述】:
我是 R 新手。我尝试处理一些实验数据,但在读取文件时遇到了一个错误。 我想读取文件夹中的一些数据文件,但我不知道有多少。我只知道所有文件都命名为“Subject1ManualX.log”,X 为 1 或更高。由于我没有找到计算文件夹中有多少文件的可能性,因此我尝试在 while 循环中打开文件,直到引发异常(即我尝试打开“Subject1Manual1.log”,然后打开“Subject1Manual2.log”等)。
这是我的代码(打印用于调试):
# Script to work on ET data
temp <- 0
while (temp == 0){
tryCatch({
subjectData <- read.delim("D:/Doctorat/XPs/XP1-2_LIPSMWA/SmartEye/Subject1/Subject1Manual3.log")
}, warning = function(w){
print(paste("warning", i))
temp <- 1
}, error = function(e){
print(paste("error", i))
temp <- 1
}, finally = {
print("finished")
})
}
不幸的是它不起作用(这就是我在这里的原因......)。我知道我会有警告和错误。如果我处理警告,R 会因为未处理错误而崩溃(“所有连接都在使用中”崩溃)。如果我只处理错误,它不会通过它,并且 while 循环在每次迭代时继续。
我们将不胜感激有关此问题的任何想法(包括读取未知数量文件的更好方法)。感谢您的宝贵时间!
像素
编辑:好的,一些好人回答了如何导入多个数据文件,但出于好奇,我想知道如何在 while 循环中处理 try catch。有什么想法吗?
【问题讨论】:
-
使用
list.files函数获取所有文件,用户pattern选择特定文件...这可以用于for循环或任何其他轻松处理它们的方法.....跨度>
标签: r import while-loop try-catch