R 突然停止执行命令并继续执行下一个命令

R 突然停止执行命令并继续执行下一个命令,r,R,我有一组需要应用rpart算法的文件。其中一些文件的计算时间太长。我怎样才能跳过这些案例(例如,需要一个多小时的案例)并继续下一个案例 for (i in num) { print(i) infilename = filenames[i] tmpData = read.table(infilename, header = TRUE, sep= "\t") retval = rpart(fmla[i], dat=tmpData, method = "class") print (retval

我有一组需要应用
rpart
算法的文件。其中一些文件的计算时间太长。我怎样才能跳过这些案例(例如,需要一个多小时的案例)并继续下一个案例

for (i in num)
{
print(i)
infilename  = filenames[i]
tmpData = read.table(infilename, header = TRUE,  sep= "\t")
retval = rpart(fmla[i],  dat=tmpData, method = "class")
print (retval)
}
编辑: 基于@Dwin的suggestin,我正在做以下工作,但它不起作用。我哪里做错了

for (i in num)
{
print(i)
infilename  = filenames[i]
tmpData = read.table(infilename, header = TRUE,  sep= "\t")
retVal= NULL
setTimeLimit(cpu=10)
retval = try(rpart(fmla,  dat=tmpData, method = "class") )
print (retval)
}

因为您只是使用常规的R函数(而不是从头开始编写),所以需要想出一些方法来估计导致时间过长的情况。如果
dim(dfrm)
的乘积超过某个阈值,这可能是一个检查数据帧维度并跳过下一个
rpart
计算的测试

retval = if(prod(dim(tmpData)) < 1e6) {
                rpart(fmla[i],  dat=tmpData, method = "class") }

因为您只是使用常规的R函数(而不是从头开始编写),所以需要想出一些方法来估计导致时间过长的情况。如果
dim(dfrm)
的乘积超过某个阈值,这可能是一个检查数据帧维度并跳过下一个
rpart
计算的测试

retval = if(prod(dim(tmpData)) < 1e6) {
                rpart(fmla[i],  dat=tmpData, method = "class") }

谢谢@DWin,设置时间限制似乎很合理。我在等待其他人是否有任何想法。谢谢,但实际的代码不起作用。不过你的例子很有效。谢谢@DWin,setTimeLimit似乎很合理。我在等待其他人是否有任何想法。谢谢,但实际的代码不起作用。不过,你的例子很有效。