我刚刚开始使用R,并且不确定多久更新已安装的软件包(此时,我主要使用的是ggplot2和拨浪鼓).一方面,这是拥有最新版本的典型极客冲动:-)另一方面,更新可能会破坏功能,作为R初学者,我不想浪费时间研究包不兼容性并重新安装库,这几乎可以肯定我没有注意到改进的包装有任何区别.
对于其他应用程序,我从根据升级频率,升级版本和安装等等之间的经验开发出来.但就R而言,我处在黑暗中
并且要明确:我不是在讨论R本身,而是在讨论它的库.
谢谢.
Vin*_*nce 16
这是我的理念:天真的用户永远不会更新.老练的用户总是会更新.高级用户经常更新,但要小心.
无意识更新并不总是有益的.错误在R库的更新版本(或R本身!)中发挥作用,您可以通过更新来破坏现有代码,而无需读取更改日志或提交历史记录.例如,R 2.11 lme4在OS X上爆发......在版本之间仔细更新和运行包的演示是值得的.更新到新的库或R版本并且在截止日期之前发现了一些事情,这真的很糟糕.
Dir*_*tel 12
是的.
为什么你想要坚持旧的错误和缺乏功能?
问题已经回答了,但我会提供2美分.在组织中,更新R应该被视为更新gcc或Java:带警告,临时区域,回滚计划等.其他人的工作和结果可能会受到影响.[见更新#2]
我对更新R包更加冲动.只要您可以在任何时间点重现系统状态,就不用担心了.确保夜间备份应该是您的系统管理员的域.
基本的想法是你应该能够重现一切.实际测试您的早期结果是否被复制取决于您是否想要反驳您的假设,即没有错误或更改会影响以后的结果.:)
更新1.正如在评论及上文中所提到的,在生产环境或任何稳定性最佳的环境中进行更新(例如,错误已知或不重要),引入新错误,新依赖关系,不同输出或任何其他类型软件回归,应该非常谨慎.而且,你在很多事情上都要更新.从R-Forge更新更有可能让您暴露于最新的错误,而不是CRAN.即便如此,我已经发现并报告了CRAN上3个版本的软件包持续存在的错误,以及其他神奇地出现过的回归.我测试了很多,但更新,发现新的错误和调试是我并不总是想(或有时间)进行的努力.
在我使用了很多的新版本的软件包中找到一个新的bug后,我想起了这个问题.为了检查,我恢复了早期的版本 - 没有更多的崩溃,虽然追查原因花了几个小时,因为我认为这不是在这个包中产生的.我会不久向维护者发送一个注释,以便其他人不必偶然发现同一个bug.
更新2.在一个组织中,我不得不说答案是否定的.实际上,在任何可能存在两个或更多R的并发实例的情况下,盲目地更新包而另一个可能正在使用它们是非常不明智的.热插拔包可能有很好的方法,我还不知道.请记住,这两个实例只需要共享库(即存储包的位置),而AFAIK不需要在同一台机器上同时运行.因此,如果将库放在共享系统上,例如通过NFS,则可能无法使用这些库知道R在哪里同时运行.意外杀死另一个R进程通常不是一件好事.