Как мне установить пакет R под другим именем? - PullRequest
0 голосов
/ 21 сентября 2018

Я использую R 3.4.1 в Red Hat Enterprise Linux 6. У меня установлена ​​версия 3.0 пакета 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 Ответ

0 голосов
/ 21 сентября 2018

1) редактировать ОПИСАНИЕ Загрузите исходный код, отредактируйте файл ОПИСАНИЕ, чтобы иметь другое имя, а затем соберите и установите его.

2) отдельная библиотека Поочередноустановите новую версию в отдельную библиотеку, а затем используйте одну из них, чтобы получить нужную версию:

library(asreml, lib = ...)
library(asreml)

2a) .libPaths Вариантом этого является использование .libPaths(new) дляизмените путь к библиотеке по умолчанию, введите

library(asreml)

, а затем измените его обратно.

2b) dev_mode Простой способ выполнить переключение библиотеки - использовать dev_mode() без аргументов (из пакета devtools).После выполнения первой команды dev_mode() библиотека по умолчанию становится ~ / R-dev.В этот момент установите новую версию asrmel с помощью обычной команды install.packages без указания 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...