112

別のファイル、たとえばxyz.Rのabc.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 に答える