参考本地R包内的其他功能

时间:2016-11-29 19:39:28

标签: r

我正在编写一个我打算用于分析的本地包(而不是像我之前那样使用脚本)。我在理解R的采购方式方面遇到了一些麻烦。说我有一个R / some_functions.R文件,其中包含:

#' function a
#' @export
a <- function(a) {
  print(a)
}

#' function b, not exporting
b <- function(b) {
  print(b)
}

#' function c
cc <- function() {
  a("cat") # will run
  b("dog") # will not run, can't find function.
}

我知道在安装/加载软件包时可以通过NAMESPACE访问函数“a”,但我仍然期望函数“b”在内部可用。由于我是该软件包的唯一预期用户,我可以导出所有,但我想知道正确的方法。 刚出口?采购?使用devtools :: load_all?

编辑:虚拟代码不够好。修改它。我认为我的误解的根源是我期待附加代码,显然情况并非如此。

1 个答案:

答案 0 :(得分:4)

你是对的,当你导出一个函数时,它会在加载包时可用。 在编写包时,您应该只导出对包实现的功能至关重要的功能。

也就是说,您在包装中编写的每个功能都可以在包装内部使用,不论是否已导出。

要使用未在包外导出的函数,可以使用此synthax:your_package:::b()

有关更详细的说明,请参阅r-pkgs的namespace部分。