代码之家  ›  专栏  ›  技术社区  ›  CptNemo

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

  •  3
  • CptNemo  · 技术社区  · 11 年前

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

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

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

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

    1 回复  |  直到 11 年前
        1
  •  4
  •   Paul Hiemstra LyzandeR    11 年前

    如果您的脚本需要共享对象,我只需创建一个脚本,其中的功能已被分割为多个函数。结构可能有点像:

    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 .