r - 如何以另一个名称安装 R 包?
问题描述
我在 Red Hat Enterprise Linux 6 上使用 R 3.4.1。我asreml
在/tools/bioinfo/app/R-3.4.1/lib64/R/library
.
> library(asreml)
Loading required package: lattice
Checking for license <redacted>
> .libPaths()
[1] "/tools/bioinfo/app/R-3.4.1/lib64/R/library"
该软件包的第 4 版现已发布,但我们想将第 3 版与第 4 版的结果进行比较。为此,我们希望将第 4 版安装在我们的系统上作为asreml4
. 我已经下载了最新版本的 *tar.gz 文件,但如果我这样做了
R CMD INSTALL asreml_4.1.0.93.tar.gz
它将它安装在asreml
文件夹中,覆盖旧版本。那不是我想要的。
我也尝试将它安装在另一个地方,将文件夹重命名为asreml4
,然后将该文件夹复制到/tools/bioinfo/app/R-3.4.1/lib64/R/library
然后尝试加载它,但是它加载了错误的版本:
> library(asreml, lib.loc="/tools/bioinfo/app/R-3.4.1/lib64/R/library/asreml4")
> packageVersion("asreml")
[1] ‘3.0.1’
那么,如何以asreml4
可以调用它的方式将它安装在文件夹中library(asreml4)
?
解决方案
1)编辑DESCRIPTION下载源代码,编辑DESCRIPTION文件以具有不同的名称,然后构建并安装它。
2) 单独的库将新版本交替安装到单独的库中,然后使用其中一个来获得所需的版本:
library(asreml, lib = ...)
library(asreml)
2a) .libPaths的一个变体是.libPaths(new)
用来更改默认库路径,发出
library(asreml)
然后改回来。
2b) dev_mode完成库切换的一种简单方法是dev_mode()
不带参数使用(来自 devtools 包)。发出第一个dev_mode()
命令后,默认库变为 ~/R-dev 。此时使用普通install.packages
命令安装新版本的 asrmel,无需指定lib=
,它将安装到 ~/R-dev。library
在不指定库的情况下加载它会导致它首先查看 ~/R-dev。然后对其进行测试,最后当您准备好再次切换回原始库和原始 asreml 问题dev_mode()
时。 dev_mode()
操纵默认库路径,因此您可以随时使用.libPaths()
不带参数来检查当前默认值是什么。
library(devtools)
dev_mode() # ~/R-dev now default library
# ...
dev_mode() # restore usual default library
推荐阅读
- c++ - 将 std::less<> 用于 unique_ptr 与原始指针的比较无法编译,但可以与包装器一起使用?
- pandas - 创建一列计算连续负天数
- c - 联合成员名称与其类型名称相同的 C 代码
- python-3.x - 是否可以在使用 lavalink.py 时显示从队列开始的歌曲的标题和链接
- python - 使用 Powershell 维护在 Python 中打开的串口
- linux - 基于非空行Linux对文件进行排序
- c++ - 即使文件不再存在,ifstream 也会继续读取
- java - 在android中杀死应用程序时我们如何执行后台操作
- html - 无法正确设置设备宽度,有东西伸出
- asp.net-core-webapi - 如何防止访问者通过 URL 在浏览器中访问我网站的 API?