Определите все функции в одном файле .R, вызовите их из другого .R файла. Как, если это возможно?

Как мне вызвать функции, определенные в файле abc.R в другом файле, скажем, xyz.R?

Дополнительный вопрос: как мне вызвать функции, определенные в abc.R, из командной строки R/командной строки?

Ответ 1

Вы можете вызвать 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
>