首页 > 解决方案 > 如何以另一个名称安装 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)

标签: rinstallation

解决方案


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

推荐阅读