I would like source()
to only find and load functions within a .R
file.
For example, in the file Analysis.R:
print.hw <- function() {
print("hello world")
}
x <- 1 + 2
...
When I source("Analysis.R")
, it will create the function print.hw
but also assign x
, which I do not want.
Anyone have any ideas? The best I could find was this question:
Source only part of a file
This works without using regex. It's also probably less computationally efficient than regex solutions. It creates a new environment, sources the entire file, then returns only the functions back to the global environment.
SourceFunctions<-function(file) {
MyEnv<-new.env()
source(file=file,local=MyEnv)
list2env(Filter(f=is.function,x=as.list(MyEnv)),
envir=parent.env(environment()))
}