我在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)
文件夹中?
答案 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