我承认这个问题主要是基于观点,但这里有一些想法。
Hadley Wickham在 Twitter 上进行了一项民意调查,提出了一个非常相似的问题,大多数人投票认为他应该等待 4-5 年再删除已弃用的功能。诚然,这是民意调查中可用的最短选项,但第二受欢迎的答案是 10 年以上。
现在,这当然取决于您如何弃用它。{lifecycle} 包的文档收集了一些关于函数弃用的想法,值得一读。{lifecycle} 文章建议首先在全局环境中使用某个函数时发出警告并测试该函数(即,当其他开发人员在其包中使用您的已软弃用的函数时,不要发出警告)。接下来每次都发出硬警告,最后让函数每次都返回错误。
当您以不同的函数名称发布非常相似的功能时,事情会发生一些变化,这称为“取代”函数。我认为这对于任何更新都很好。我的建议是使用以下内容:
# Your function that supercedes the older one
plus <- function(x, y) x + y
# Your deprecated function
add <- function(x, y) {
warning("`add()` is deprecated. Using `plus()` instead.")
plus(x, y)
}
Run Code Online (Sandbox Code Playgroud)
您可以做的另一件事是在互联网(或 GitHub)上进行逐字搜索library(your_package),或者your_package::my_to_be_deprecated_function查看其他人是否以及如何在他们共享的代码中使用它(以及该代码是否只是一次性分析脚本或旨在被其他人重复使用)。如果您发现某人的用例无法轻易地被其他功能取代,您可能会考虑将其保留更长时间或软弃用它而不是硬弃用它。
如果您发现人们几乎不使用您的功能,您的软件包不在集中存储库(CRAN / Bioconductor)上,或者您没有在任何地方宣传您的功能,我个人认为您可以采取更多自由该base::data.frame()功能背后的开发人员。