如何将多个R文件聚合到一个文件中

时间:2015-02-17 14:49:01

标签: r

场合

我编写了一个R程序,为了保持良好的代码结构,我将其拆分为多个R文件。 有一个Main.R文件,它使用'source()'命令引用所有其他R文件,如下所示:

source(paste(getwd(), dirname1, 'otherfile1.R', sep="/"))
source(paste(getwd(), dirname3, 'otherfile2.R', sep="/"))
...

如您所见,工作目录需要提前正确设置,否则可能会出错。 现在,如果我想与其他人共享这个R程序,我必须以相对的顺序传递所有R文件和文件夹,以便工作。因此,我的下一个问题。

问题

有没有办法用所引用的实际R脚本代码替换所有'source'命令?这样,我有一个SINGLE R脚本文件,我可以简单地传递,而不必担心设置工作目录。

我不是在寻找一个'R包'的解决方案(顺便说一句是一个目录,所以我会丢失自己的目录结构)。我只是想知道是否有一种简单的方法可以将这些自引用R文件合并到一个文件中。

谢谢,

1 个答案:

答案 0 :(得分:0)

好的我认为你可以使用扫描所有文件,然后在同一个新文件中再次写入文件。这可以使用readLinessink

来完成
sink("mynewRfile.R")

for(i in Nfiles){
    current_file = readLines(filedir[i])
    cat("\n\n#### Current file:",filedir[i],"\n\n")
    cat(current_file, sep ="\n")
}

sink()

这里我假设你的所有文件目录都在长度为filedir的向量Nfiles中,我想你可以适应