【发布时间】:2018-04-28 13:09:44
【问题描述】:
我正在开发一个R Package,其中包含我在一个导出函数中使用的多个函数。
我的问题,可能是一个愚蠢的问题,我应该把所有这些未导出函数放在哪里?或者我怎样才能做到这一点?
我不想让用户从R/ 目录访问这些功能。
这是我使用未导出函数add的虚构函数:
my_func <- function(x, y){
result <- exp(add(x, y))
return(result)
}
这是我不想导出的虚构函数add:
add <- function(x, y) {
result <- x + y
return(result)
}
谢谢
编辑
如果我将所有功能放在/R 中,它们将对用户“可见”。例如,来自xgboost 包的generate.cv.folds 未导出,但您仍然可以使用xgboost:::generate.cv.folds 访问它,我也想这样做。
【问题讨论】:
-
您必须明确导出您希望用户直接访问的所有函数(在
/R中)(通过::机制)。所有非显式导出的函数都不会导出,只能通过:::访问。您不能隐藏代码(抱歉?)。 -
@RomanLuštrik 但是我可以将那些非显式导出的函数放在哪里(或如何)?我知道任何用户都可以使用
package:::function访问任何功能,但我不希望它们在/R中可见。谢谢。 -
你的 R 代码应该在
/R, AFAIK。至少如果你想要一个完全成熟的包。