3

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

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

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

此外,我的脚本需要彼此共享 R 对象。如果我从 bash 调用脚本,他们仍然会使用通用的 R 工作区吗?

4

1 回答 1

4

如果您的脚本需要共享对象,我会简单地创建一个脚本,其中功能已被分割成函数。该结构可能类似于:

main_script.R
support_functions_A.R
support_functions_B.R

然后在main_script.R您使用source将函数加载到您的 R 会话中,例如source("support_functions_A.R"). 这具有将主要功能集中在一个地方的优势,在一个更好的抽象级别。如果支持函数的数量增加,您还可以考虑为此创建一个 R 包。当您的代码也被其他人使用时,这尤其有用。

仅当它们不需要共享相同的 R 工作区时,才能使用 bash 脚本按顺序调用脚本。我会避免像这样将 R 功能链接在一起,并专注于编写函数而不是单独的脚本。

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

#! /usr/bin/env Rscript

在 R 脚本的顶部,并使用chmod.

于 2013-09-25T08:12:10.240 回答