Define all functions in one .R file, call them from another .R file. How, if possible?

RFileScopeNamespacesUser Defined-Functions

R Problem Overview


How do I call functions defined in abc.R file in another file, say xyz.R?

A supplementary question is, how do I call functions defined in abc.R from the R prompt/command line?

R Solutions


Solution 1 - R

You can call source("abc.R") followed by source("xyz.R") (assuming that both these files are in your current working directory.

If abc.R is:

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

and xyz.R is:

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

then this will work:

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

Even if there are cyclical dependencies, this will work.

E.g. If abc.R is this:

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

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

and xyz.R is this:

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

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

then,

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionG ShahView Question on Stackoverflow
Solution 1 - RA_KView Answer on Stackoverflow