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

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

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

113360 次浏览

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

如果 ab.R 是:

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

Xyz.R 是:

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

then this will work:

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

即使存在周期性依赖,这也会奏效。

例如,如果 ab.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
>