我想获取在程序包中定义并导出的功能列表,而不是从其他程序包中导入的功能列表?
以下解决方案很好,但是list也可以重新导出: Seeking Functions in a Package
答案 0 :(得分:3)
getNamespaceExports()
;幸运的是,有一个伴侣getNamespaceImports()
。然后,我们可以在两者之间找到setdiff()
。例如:
devtools_exports <- getNamespaceExports("devtools")
devtools_imports <- getNamespaceImports("devtools")
devtools_exported_not_imported <- setdiff(devtools_exports, devtools_imports)
"install_github" %in% devtools_exports
# [1] TRUE
"install_github" %in% devtools_exported_not_imported # comes from remotes
# [1] FALSE
答案 1 :(得分:1)
实际上,我发现了另一个似乎很好用的解决方案:
unclass(lsf.str(envir = asNamespace('myPackage')))
好处是我没有得到这些系统变量:
"system.file" "library.dynam.unload" ".__global__"