为了能够比较包的两个版本,我需要能够选择加载哪个版本的包。 R 的包系统默认设置为覆盖现有包,以便您始终拥有最新版本。我该如何覆盖这种行为?
到目前为止我的想法是:
我可以获取包源,编辑描述以给出不同的名称,并实际上构建两个不同的包。不过,我宁愿能够直接使用二进制文件,因为这样麻烦少得多。
我不一定需要同时加载两个版本的软件包(只是同时安装在某个地方)。我也许可以乱搞Sys.getenv('R_HOME')
更改 R 安装软件包的位置,然后.libpaths()
更改 R 查找它们的位置。这看起来很奇怪,所以有人有更好的想法吗?
您可以有选择地更改库路径。为了完全透明,请将两者都排除在您通常的路径之外,然后执行
library(foo, lib.loc="~/dev/foo/v1") ## loads v1
and
library(foo, lib.loc="~/dev/foo/v2") ## loads v2
同样适用于install.packages()
, 当然。所有这些命令都有许多参数,因此您想要的挂钩可能已经存在。所以不要着眼于改变R_HOME
,而是看看help(install.packages)
(假设您从源安装)。
但据我所知,您不能以相同的名称加载同一个包两次。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)