我希望 source()
仅在 .R
文件中查找和加载函数。
例如,在文件 Analysis.R 中:
print.hw <- function() {
print("hello world")
}
x <- 1 + 2
...
当我 source("Analysis.R")
时,它会创建函数 print.hw
但也会分配 x
,我不想。
有人有什么想法吗?我能找到的最好的问题是这个问题:
最佳答案
这在不使用正则表达式的情况下工作。它的计算效率也可能低于正则表达式解决方案。它创建一个新环境,获取整个文件,然后仅将函数返回到全局环境。
SourceFunctions<-function(file) {
MyEnv<-new.env()
source(file=file,local=MyEnv)
list2env(Filter(f=is.function,x=as.list(MyEnv)),
envir=parent.env(environment()))
}
关于r - 只有 .R 文件中的源函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26620324/