如何使用其他名称安装R软件包?

时间:2018-09-21 15:49:25

标签: r installation

我在Red Hat Enterprise Linux 6上使用R 3.4.1。我在asreml下安装了软件包/tools/bioinfo/app/R-3.4.1/lib64/R/library的3.0版。

> 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版的结果进行比较。为此,我们希望在系统上以asreml4的形式安装Version4。我已经下载了* 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 个答案:

答案 0 :(得分:5)

1)编辑说明,下载源代码,编辑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