3
我有一系列需要按順序運行的R腳本。也就是說,我需要等到第一個完成之後再跟第二個一起移動。這是序列號:執行R腳本序列的最佳做法是什麼
one.R
two.R
three.R
four.R
我應該寫一個簡短的bash腳本來調用所有的腳本嗎?我應該如何寫它?我應該在R腳本的頂部添加什麼行?
此外,我的腳本需要共享R對象。如果我從bash調用腳本,他們仍然會使用通用的R工作區?
我有一系列需要按順序運行的R腳本。也就是說,我需要等到第一個完成之後再跟第二個一起移動。這是序列號:執行R腳本序列的最佳做法是什麼
one.R
two.R
three.R
four.R
我應該寫一個簡短的bash腳本來調用所有的腳本嗎?我應該如何寫它?我應該在R腳本的頂部添加什麼行?
此外,我的腳本需要共享R對象。如果我從bash調用腳本,他們仍然會使用通用的R工作區?
如果您的腳本需要共享對象,我只需創建一個腳本,其中功能已被切割成功能。該結構也能像服用點:
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
腳本可執行。
如果你想使用一個通用的R工作區,你將不得不通過bash啓動一個R會話,並使用R中的「source()」commando來調用你的腳本。 – holgrich