Как вы используете несколько версий одного и того же пакета R?
Чтобы иметь возможность сравнивать две версии пакета, мне нужно выбрать, какую версию пакета загружать. R по умолчанию установлена для перезаписывания существующих пакетов, так что у вас всегда будет последняя версия. Как переопределить это поведение?
Мои мысли до сих пор:
Я мог бы получить источники пакетов, редактировать описания, чтобы давать разные имена и строить, по сути, два разных пакета. Я предпочел бы работать напрямую с двоичными файлами, поскольку это гораздо меньше хлопот.
Мне не обязательно иметь обе версии загруженных пакетов одновременно (только что установили где-то в одно и то же время). Я мог бы смириться с Sys.getenv('R_HOME')
, чтобы изменить место, где R устанавливает пакеты, а затем .libpaths()
, чтобы изменить место, где R ищет их. Это кажется взломанным, хотя, есть ли у кого-нибудь лучшие идеи?
Ответы
Ответ 1
Вы можете выборочно изменить путь к библиотеке. Для полной прозрачности сохраните оба из вашего обычного пути, а затем выполните
library(foo, lib.loc="~/dev/foo/v1") ## loads v1
и
library(foo, lib.loc="~/dev/foo/v2") ## loads v2
То же самое работает для install.packages()
, конечно. Все эти команды имеют ряд аргументов, поэтому крючки, на которые вы нацелились, уже могут присутствовать. Поэтому не смотрите на изменение R_HOME
, скорее посмотрите help(install.packages)
(предполагая, что вы устанавливаете из источника).
Но AFAIK вы не можете загрузить один и тот же пакет дважды под тем же именем.