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似乎很合理。我在等待其他人是否有任何想法。谢谢,但实际的代码不起作用。不过,你的例子很有效。