在一个.R文件中定义所有函数,从另一个.R文件中调用它们。 如果可能的话怎么样?

如何在另一个文件中调用abc.R文件中定义的函数,比如xyz.R?

补充问题是,如何从R提示符/命令行调用abc.R中定义的函数?

1个解决方案
106 votes

您可以致电source("abc.R"),然后致电source("xyz.R")(假设这两个文件都在您当前的工作目录中。

如果abc.R是:

fooABC <- function(x) {
    k <- x+1
    return(k)
}

和xyz.R是:

fooXYZ <- function(x) {
    k <- fooABC(x)+1
    return(k)
}

然后这将工作:

> source("abc.R")
> source("xyz.R")
> fooXYZ(3)
[1] 5
> 

即使存在周期性依赖关系,这也会有效。

例如。 如果abc.R是这样的:

fooABC <- function(x) {
    k <- barXYZ(x)+1
    return(k)
}

barABC <- function(x){
    k <- x+30
    return(k)
}

和xyz.R是这样的:

fooXYZ <- function(x) {
    k <- fooABC(x)+1
    return(k)
}

barXYZ <- function(x){
    k <- barABC(x)+20
    return(k)
}

然后,

> source("abc.R")
> source("xyz.R")
> fooXYZ(3) 
[1] 55
>
A_K answered 2019-06-02T07:42:34Z
translate from https://stackoverflow.com:/questions/13548266/define-all-functions-in-one-r-file-call-them-from-another-r-file-how-if-pos