如何执行一系列R脚本的最佳实践

3

我有一系列需要按顺序运行的R脚本。也就是说,在进行第二个脚本之前,我需要等待第一个脚本完成。以下是运行顺序:

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

我应该写一个简短的bash脚本按顺序调用所有脚本吗?我应该如何编写它?在R脚本的顶部应该添加哪一行代码?

此外,我的脚本需要相互共享R对象。如果我从bash调用这些脚本,它们会仍然使用共同的R工作空间吗?


如果您想使用一个共同的R工作空间,您将需要通过bash启动一个R会话,并在R中使用“source()”命令调用您的脚本。 - holgrich
1个回答

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使脚本可执行。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接