在数据可用之前停止R脚本的执行

在数据可用之前停止R脚本的执行,r,batch-file,R,Batch File,我试图在R中创建两个windows批处理文件,然后逐个运行它们。这些批处理作业将从数据库中导出数据,R脚本的其余部分将格式化导出的数据,然后用于其他目的。我面临的问题是,我创建了批处理文件,然后使用shell命令运行作业。但是,这些批处理作业需要一些时间才能完成。当它们仍在运行时,脚本的其余部分将被执行,因为它找不到数据帧(应该作为批处理作业完成的结果创建数据帧),所以脚本失败。是否有一种方法可以在R中指定在批处理作业完成且数据可用之前不应执行脚本。由于每次运行时完成作业所需的时间不同,因此我不

我试图在R中创建两个windows批处理文件,然后逐个运行它们。这些批处理作业将从数据库中导出数据,R脚本的其余部分将格式化导出的数据,然后用于其他目的。我面临的问题是,我创建了批处理文件,然后使用shell命令运行作业。但是,这些批处理作业需要一些时间才能完成。当它们仍在运行时,脚本的其余部分将被执行,因为它找不到数据帧(应该作为批处理作业完成的结果创建数据帧),所以脚本失败。是否有一种方法可以在R中指定在批处理作业完成且数据可用之前不应执行脚本。由于每次运行时完成作业所需的时间不同,因此我不想使用Sleep命令。任何帮助都将不胜感激。谢谢大家!

如果批处理生成的文件已经存在,那么只需每秒检查一次就可以了

while (!file.exists(destfile)) 
{
  Sys.sleep(1)
}

这样,执行将一直保持在while循环中,直到文件存在为止。(无需太多资源)

请提供您正在使用的所有代码。谢谢。我尝试了while循环,但它一直给我一个错误,即目标文件不存在(尽管这就是重点)。然而,我读了更多的内容,发现如果我只使用“shell”而不是“shell.exe”,问题就会得到解决,因为默认情况下“shell”具有wait=true选项(在stackoverflow问题之一中解释)。