2013-09-25 101 views
3

我有一系列需要按順序運行的R腳本。也就是說,我需要等到第一個完成之後再跟第二個一起移動。這是序列號:執行R腳本序列的最佳做法是什麼

one.R 
two.R 
three.R 
four.R 

我應該寫一個簡短的bash腳本來調用所有的腳本嗎?我應該如何寫它?我應該在R腳本的頂部添加什麼行?

此外,我的腳本需要共享R對象。如果我從bash調用腳本,他們仍然會使用通用的R工作區?

+0

如果你想使用一個通用的R工作區,你將不得不通過bash啓動一個R會話,並使用R中的「source()」commando來調用你的腳本。 – holgrich

回答

4

如果您的腳本需要共享對象,我只需創建一個腳本,其中功能已被切割成功能。該結構也能像服用點:

main_script.R 
support_functions_A.R 
support_functions_B.R 

然後在main_script.R您使用source的功能加載到R對話,例如source("support_functions_A.R")。這具有在一個更好的抽象層次上具有主要功能的優點。如果支持功能的數量增加,您也可以考慮爲此創建一個R包。當你的代碼也被其他人使用時,這是特別有用的。

使用bash腳本按順序調用腳本只有在不需要共享相同的R工作區時才能使用。我會避免將R這樣的功能鏈接在一起,並且專注於編寫功能而不是單獨的腳本。

如果你需要運行的R腳本的bash內的腳本,你可以添加:

#! /usr/bin/env Rscript 

在你的[R腳本的頂部,並使用chmod腳本可執行。

相關問題