我个人的包装触发因素是:
我同意@JohnRos的观点,即写程序包和发布程序包之间有很大的区别。
我通常会提早打包,但随后将其打包为“ semipublic”。也就是说,它可能在内部服务器(或r-forge)上可用,因此我的同事可以访问该程序包。但是,只有在密友使用了数月甚至数年后,我才向CRAN发布。根据@Nick Cox的观点#3,这并不会引发所有错误,但是其中有相当数量的错误。
软件包的版本(我在版本号中的破折号后加上了日期)可以很容易地进行修复(“为此,请确保您至少安装了上周的版本”)
根据我的工作合同,我的雇主在决定是否以及如何将软件包发布到外界方面拥有最终决定权。
我还没有好的打包策略的地方就是数据。
对您的原因列表的评论:
没有找到一个包,做什么,我需要对我触发编写的代码,但它不具有决定是否打包或不做。
确定地。可能已经需要在我使用的多台计算机之间共享。
在可能导致相反决定的要点中:
您可以将这些方法导入到您的包/代码中:这是反对编写此类代码的要点,但仅与打包有间接关系。
对我来说,启动软件包没有最小数量的功能。根据我的经验,软件包倾向于“自动”增长。相反,在发现自己几次从另一个新程序包中分支出来之后(因为例如最终某些辅助功能在主题上也有所不同,并且在其他情况下也很有用),我现在宁愿立即创建新软件包。
另外,如果您没有编写文档和测试,那么当用于创建软件包的大量功能累积时,这可能是一项艰巨的工作。
(如果您确实立即编写它们,那么一旦您知道工作流程,将其放入包中的额外工作就可以忽略不计)。