R 中用户从未分派的函数的命名约定

Naming convention for a function that's never dispatched by user in R

我最近重构了一个函数。它曾经看起来像这样。

annotate <- function(param1, param2, param3) {
# setup
# Do work
# Do work but with a slight twist
}

看到复制粘贴的代码让我很烦所以我将其重构为:

annotate <- function(param1, param2, param3) {
# setup
annotateFxn(setup, param1, param2)
annotateFxn(setup, param1, param2, param3)
}

annotateFxn(setup, param1, param2, param3 = NULL) {
# Do work, account for if param3 is NULL
}

我不打算让任何人直接致电 annotateFxn。 R 中是否有一个命名约定,我可以称之为它而不是它的占位符 annotateFxn?

我知道在Python中,惯例是在不希望用户调用的函数前放置下划线,但下划线不能在 R 中启动变量名。是否有有什么接近惯例的吗?

许多包中的一个常见约定是使用点 ala .annotate_helper() 来启动内部函数。您还可以考虑不导出此函数,以便用户无法访问它,除非他们使用 ::: 运算符:package:::.annotate_helper().