2016-11-10 59 views
-1

我想在R中創建兩個Windows批處理文件,然後逐個運行它們。這些批處理作業會將數據從數據庫中導出,其餘的R腳本將格式化導出的數據,然後將其用於其他目的。我面臨的問題是我創建了批處理文件,然後使用shell命令運行作業。但是,這些批量作業需要一些時間才能完成。當它們仍在運行時,腳本的其餘部分將被執行,並且由於它沒有找到數據框(它應該是批量作業完成的結果),它將失敗。有沒有辦法在R中指定腳本不應該執行,直到批處理作業完成並且數據可用。由於每次運行完成作業需要不同的時間,因此我不想使用Sleep命令。任何幫助將不勝感激。謝謝!停止執行R腳本,直到數據可用

+0

請提供您使用的所有代碼。 – Squashman

回答

0

什麼?只需勾選每一秒,如果該批次生產的文件已經存在

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

這樣的執行停留在while循環,直到該文件是存在的。 (不需要太多資源)

+1

謝謝。我試過while循環,但它一直給我一個錯誤,說明目標文件不存在(儘管這是整個問題)。然而,我讀了更多,發現如果我只是使用「shell」而不是「shell.exe」,問題將被解決,因爲默認情況下,「shell」可以選擇wait = true(在一個stackoverflow問題中解釋) 。 – asmi