执行一系列R脚本的最佳实践是什么?

时间:2013-09-25 08:02:45

标签: r bash

我有一个需要按顺序运行的R脚本列表。也就是说,我需要等到第一个完成之后再移动第二个。这是序列:

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

我应该写一个简短的bash脚本按顺序调用所有脚本吗?我该怎么写呢?我应该在R脚本的顶部添加什么行?

另外,我的脚本需要与另一个共享R对象。如果我从bash调用脚本,他们仍然会使用一个共同的R工作区吗?

1 个答案:

答案 0 :(得分: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功能链接在一起,并专注于编写函数而不是单独的脚本。

如果您需要在bash中将R脚本作为脚本运行,则可以添加:

#! /usr/bin/env Rscript

位于R脚本的顶部,并使用chmod使脚本可执行。