web-dev-qa-db-de.com

Definieren Sie alle Funktionen in einer .R-Datei und rufen Sie sie aus einer anderen .R-Datei auf. Wie, wenn möglich?

Wie rufe ich in einer anderen Datei in der Datei abc.R definierte Funktionen auf, z. B. xyz.R?

Eine ergänzende Frage ist, wie ich in abc.R definierte Funktionen von der R-Eingabeaufforderung/Kommandozeile aus aufrufe.

84
G Shah

Sie können source("abc.R") gefolgt von source("xyz.R") aufrufen (vorausgesetzt, diese beiden Dateien befinden sich in Ihrem aktuellen Arbeitsverzeichnis.

Wenn abc.R ist:

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

und xyz.R ist:

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

dann klappt das:

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

Auch wenn es zyklische Abhängigkeiten gibt, funktioniert dies.

Z.B. Wenn abc.R das ist:

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

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

und xyz.R ist dies:

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

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

dann,

> source("abc.R")
> source("xyz.R")
> fooXYZ(3) 
[1] 55
>
123
A_K