我正在使用roxygen2编译一个包。我希望能够确保没有相同名称的函数被定义两次。然而,目前roxygenise()在没有发出警告的情况下构建包。
例如。
library(roxygen2)
#' Real function
real_function <- function(){print("hello world")}
#' Fake function
real_function <- function(){}调用roxygenise()会导致使用第二个定义。
发布于 2015-06-04 22:26:29
我认为roxygenise不能也不应该这样做。如果您想检查自己是否有重复的名称,例如,您可以遍历目录中的文件,并按顺序附加每个文件。attach函数有一个默认情况下为TRUE的warn.conflicts参数。
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")请注意,如果在一个文件中有重复的函数,这将不起作用。
https://stackoverflow.com/questions/30637557
复制相似问题