我正在使用system()
通过CMD通过程序迭代运行多个文件。它将每个输出存放到专门为该输入文件指定的子目录中。因此,输入的数量等于输出目录/输出的数量。
我的代码适用于第一次迭代,但是我可以在控制台中看到它在完成第一个文件后不会移至第二个文件。停止标志保持活动状态,因此我知道R仍在“运行”,但是由于for循环环境是唯一的,因此我无法真正知道它的阻塞状态。这样只是停留了几个小时。因此,我不确定如何开始诊断我遇到的问题。例如,有没有办法跟踪取消代码后发生的情况?
如果您好奇的话,代码看起来像这样。我不知道如何使它可重复,所以我只注释了每一行:
for (i in 1:length(flist)) {
##flist is a vector of character strings. Each
row of characters is both the name of the input file and the name of the
output directory
setwd(paste0(solutions_dir, "\\", flist[i]))
#sets the appropriate dir
system(paste0(program_dir,"\\program.exe I=",
file_dir, "\\", flist[i], " O=",solutions_dir, "\\", flist[i],
"\\solv"))
##line that inputs program's exe file and the appropriate input/output
locations
}