我正在用R开发一个可重复计算的框架,我正在努力解决的一个问题是,一些R代码可能在包的X.Y-Z版本中运行得很好,但是为什么3年后你试图重现它,包已经更新了,一些函数改变了,代码不再运行了。例如,这个问题也会影响到使用包的Sweave文档。
信心十足地重现结果的唯一方法是安装R版本和原作者使用的包版本。如果这是一个单独的案例,可以从CRAN归档文件中提取内容并安装适当的版本。但对于我的框架来说,这是不切实际的,我需要预先安装包版本。
现在假设我将自己限制在R的一个版本上,例如2.14。安装R包的多个版本的实用方法是什么,以便我可以在运行时加载它们?我想我可以为每个包的每个版本创建单独的库目录,然后在加载它们时使用自定义的lib.loc参数。不过,这将会很混乱。有什么建议或以前的尝试做过类似的事情吗?
我的框架运行在Ubuntu服务器上。
发布于 2012-01-14 16:36:46
您可以安装带有版本的包(例如,重命名为foo_1.0
目录而不是foo
),并将您想要重新创建给定R+包快照的版本软链接到一个库中。显然,这些包实际上可以存在于单独的树中,因此您可以拥有library.projectX/foo
-> library.all/foo/1.0
。
发布于 2012-01-14 22:45:45
我会尝试修改描述文件,并通过添加版本号来更改其中的"Package“字段。
例如,您可以从CRAN页面(http://cran.r-project.org/web/packages/pls/)下载包源a。将压缩文件(pls_2.3-0.zip)解压到一个目录("pls/")。以下步骤是修改DESCRIPTION ("pls/ DESCRIPTION ")中的包名,并使用R命令'R CMD INSTALL pls/‘安装,其中'pls/’是经过修改的描述文件包源的路径。
玩R库路径对我来说似乎是一件危险的事情。
https://stackoverflow.com/questions/8860802
复制相似问题