首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何让roxygenise()检查重复的函数定义

如何让roxygenise()检查重复的函数定义
EN

Stack Overflow用户
提问于 2015-06-04 15:25:00
回答 1查看 43关注 0票数 0

我正在使用roxygen2编译一个包。我希望能够确保没有相同名称的函数被定义两次。然而,目前roxygenise()在没有发出警告的情况下构建包。

例如。

代码语言:javascript
运行
复制
library(roxygen2)

#' Real function
real_function <- function(){print("hello world")}

#' Fake function
real_function <- function(){}

调用roxygenise()会导致使用第二个定义。

EN

回答 1

Stack Overflow用户

发布于 2015-06-04 22:26:29

我认为roxygenise不能也不应该这样做。如果您想检查自己是否有重复的名称,例如,您可以遍历目录中的文件,并按顺序附加每个文件。attach函数有一个默认情况下为TRUEwarn.conflicts参数。

代码语言:javascript
运行
复制
check_duplicate_names <- function(dir){
  files <- list.files(dir)
  for (file in file.path(dir, files)){
    duplicate_test_env <- new.env()
    sys.source(file, envir = duplicate_test_env)
    attach(duplicate_test_env)
  }
  for (i in seq_along(files)){
    detach(duplicate_test_env)
  }
}
check_duplicate_names("path-to-package/R")

请注意,如果在一个文件中有重复的函数,这将不起作用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30637557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档