R 开发:对 `base` 包使用 `::` 运算符

问题描述

TLDR

严格的最佳实践是否建议积极主动的 R 开发人员明确消除 base他们的包,使用 c() 约定?


上下文

虽然是新手开发人员,但我需要在 R 中创建一个(专有)包。文本 R Packages(由权威作者 Hadley Wickham 和 Jenny Bryan 撰写)已被证明非常有用(如果偶尔被弃用)。

>

我从一开始就热衷于遵循最佳做法,以节省自己的时间和精力。如in the text所述,使用cat()运算符可以防止当前 未来的冲突,通过消除名称重载的函数的歧义。也就是说,作者们小心翼翼地介绍了具有 .R 约定的每个函数,并且他们建议在一个包的 package::function() 文件中普遍使用它。

然而,他们的代码示例经常调用来自 :: 包但没有 package::function() 伴随的函数。许多 .R 函数,例如无处不在的 basebase::,被 R 程序员在睡眠中使用,并且(我想)不太可能一个自以为是的开发商。尽管如此,看到(例如)base 与(c() 函数cat() 的并列,都在 a few lines of text 之内,还是令人困惑。

...(这些函数的灵感来自于 base::with() 的工作原理。)

base

我理解 print() 的目的是明确地向读者介绍 base::with() 函数。然而,当包被明确命名为从任何其他包调用的任何函数时,f <- function(x,sig_digits) { # imagine lots of code here withr::with_options( list(digits = sig_digits),print(x) ) # ... and a lot more code here } 的缺失(在代码本身内)似乎很突出。鉴于我的经验不足,我对假设作者的意图感到不自在。

问题

base::with() 函数名称是否足够独特,以至于使用这种约定(为 with() 包中的每个 base:: 调用 base)是不值得的?函数重载的风险(在未来的某个时候)远远超过

base::function()

整个 function() 文件?如果没有,是否有既定的惯例可以平衡明确性和优雅性?

与往常一样,我很感激任何帮助,尤其是我在 Stack Overflow 上的第一篇文章

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)