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

时间:2015-06-04 07:25:00

标签: r package

我正在使用this.Language = System.Windows.Markup.XmlLanguage.GetLanguage(culture.IetfLanguageTag) 编译包。我希望能够确保没有使用相同名称定义两次函数。但是,目前roxygen2构建程序包而不发出警告。

E.g。

roxygenise()

调用library(roxygen2) #' Real function real_function <- function(){print("hello world")} #' Fake function real_function <- function(){} 会导致使用第二个定义。

1 个答案:

答案 0 :(得分:1)

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

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")

请注意,如果您在一个文件中有重复的功能,则无效。