web-dev-qa-db-ja.com

1つの.Rファイルですべての関数を定義し、別の.Rファイルからそれらを呼び出します。可能であれば、どうやって?

Xyz.Rなど、別のファイルのabc.Rファイルで定義されている関数を呼び出すにはどうすればよいですか?

補足的な質問は、Rプロンプト/コマンドラインからabc.Rで定義された関数をどのように呼び出すかです。

84
G Shah

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
>
123
A_K