r - 只有 .R 文件中的源函数

标签 r

我希望 source() 仅在 .R 文件中查找和加载函数。

例如,在文件 Analysis.R 中:

print.hw <- function() {
    print("hello world")
}

x <- 1 + 2
...

当我 source("Analysis.R") 时,它会创建函数 print.hw 但也会分配 x,我不想。

有人有什么想法吗?我能找到的最好的问题是这个问题:

Source only part of a file

最佳答案

这在不使用正则表达式的情况下工作。它的计算效率也可能低于正则表达式解决方案。它创建一个新环境,获取整个文件,然后仅将函数返回到全局环境。

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/

相关文章:

R 计算日期范围之间每月发生的频率

r - 使用 tidyverse 计算平均值

r - 参数比例在 r 中的 ggplot2 中不起作用

command-line - 如何从 R 脚本中读取命令行参数?

r - geom_bar用不同的填充颜色定义边框颜色

r - ggmap 无法绘制特定区域

r - 带有 ifelse 和两个对象的自定义函数需要以动态方式从正确的列中读取 R

r - SSL 和/或 TLS 错误

r - 在 Knitr 或 RMarkdown Beamer 中并排的表格和数字

删除散布在字符串中的多个标点符号