112

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

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

4

1 回答 1

165

您可以调用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
>
于 2012-11-25T10:57:21.920 回答