Подтвердить что ты не робот

Как установить и управлять многими версиями пакетов R

Я разрабатываю структуру для воспроизводимых вычислений с R. Одна проблема, с которой я борюсь, заключается в том, что некоторый R-код может отлично работать в версии XY-Z пакета, но потом, почему вы пытаетесь воспроизвести его через 3 года, пакеты обновлены, некоторые функции изменены, и код больше не запускается. Эта проблема также затрагивает, например, Sweave документы, которые используют пакеты.

Единственный способ уверенно воспроизвести результаты - это установить версию R и версию пакетов, которые были использованы оригинальным автором. Если бы это был единственный случай, можно было извлечь материал из архивов CRAN и установить соответствующие версии. Но для моих фреймворков это нецелесообразно, и мне нужно предустановить версии пакета.

Предположим теперь, что я ограничиваю себя одной версией R, например. 2,14. Каким будет практический способ установки многих версий R-пакетов, чтобы я мог загружать их на лету? Я полагаю, что могу сделать что-то вроде создания отдельных каталогов библиотек для каждой версии каждого пакета, а затем использовать пользовательские аргументы lib.loc при их загрузке. Однако это будет грязно. Любые советы или предыдущие попытки сделать что-то подобное?

Мои рамки работают на сервере Ubuntu.

4b9b3361

Ответ 1

Вы можете установить пакеты с версиями (например, переименовать в каталог foo_1.0 вместо foo) и запрограммировать версии, которые вы хотите воссоздать, для моментального снимка пакетов R + в одну библиотеку. Очевидно, что пакеты действительно могут жить в отдельном дереве, поэтому вы можете иметь library.projectX/foolibrary.all/foo/1.0.

Ответ 2

Операционная система дает вам еще больше ручек для полного разделения, а стек Debian/Ubuntu - тонну доступных. Я играл с двумя

  • chroot environment: Мы используем это для завершения отдельных сред сборки с хост-машин. Например, все загружаемые мной файлы Debian встроены в chroot i386 pbuilder, размещенный на моем сервере amd64 Ubuntu. Chroot - очень мощный системный вызов Unix. Chroots и, в частности, система pbuilder, построенная поверх нее (для создания пакета Debian), предназначены для работы без головы.

  • Виртуальные машины: это дает вам полную общность. Мое не очень мощное поле легко обрабатывает три виртуальные машины: Debian i386, Ubuntu i386, а также Windoze XP. Для этого я в настоящее время использую KVM вместе с libvirt; это конкретный Linux. Я также использовал VirtualBox и VMware в прошлом.

Ответ 3

Я бы попытался изменить файл DESCRIPTION и изменить поле "Package" там, добавив номер версии.

Например, вы загружаете источник пакета a с страницы CRAN (http://cran.r-project.org/web/packages/pls/). Распакуйте сжатый файл (pls_2.3-0.zip) в каталог ( "pls/" ). Следующие шаги состоят в изменении имени пакета в DESCRIPTION ( "PLS/DESCRIPTION" ) и установке с помощью команды R "R CMD INSTALL pls/", где "pls/" - это путь к источнику пакета с измененным файлом DESCRIPTION.

Игра с библиотечными путями R кажется для меня опасной.