Предварительно: комментарий @prosoitos об использовании более старых версий пакетов, вероятно, будет лучшим выбором, если вы сможете их найти.Я считаю, что MRAN утверждает, что ежедневные версии всех пакетов возвращаются довольно далеко, вместе с пакетом checkpoint
для замораживания состояния пакетов для вашего проекта.На самом деле, попробуйте использовать этот пакет, он может сделать некоторые из перечисленных ниже «хитростей» (пожалуйста, не используйте их случайно) ненужными.
Это правда, что некоторые пакеты могут «ложно требовать версии R"вместо удобного выбора версии R, которую использует разработчик, и / или произвольной версии, которую они скопировали из другого пакета.Однако:
Вы не сможете узнать, является ли это истинным требованием, не зная внутренности кода пакета.
Если разработчик добросовестно использует надлежащим образом-определенные требования к версии R, вы можете просмотреть историю коммитов пакета (при условии, что github, gitlab или какой-то другой доступный контроль версий) и найти, когда версия R изменилась в DESCRIPTION
, и посмотреть предыдущие коммиты.чтобы увидеть, какие изменения предложили увеличить версию.Если вам повезет, в самих сообщениях коммита будет что-то вроде "add аргумент xyz =, требующий более нового R" , но я подозреваю, что это не гарантировано или даже вероятно.
В отсутствие этого может существовать одна функция (устаревшая или новая), для которой требуется более новая версия R, но больше ничего не изменилось.Мне это кажется правдоподобным, и для подтверждения снова может потребоваться некоторая проверка.
Даже если вы обнаружите это, вполне вероятно, что это зависит от других пакетов, имеющих аналогично определенные требования к версии.Таким образом, даже если вы разберетесь в одном пакете, он может каскадно объединиться в несколько или десятки пакетов.(Подсказка: возможно, checkpoint
выглядит лучше, поскольку это помогает в этом.)
Если вы каким-либо образом определите, что либо (а) вы знаете, что требование R-версии неверно,или (б) вы знаете, что для этого требуется, и вы готовы жить без этих аргументов или функций, а затем:
- клонировать или загрузить исходный код;
- изменить
DESCRIPTION
иизмените версию R, и я предлагаю вам также изменить номер версии пакета, чтобы вы знали, какую версию вы используете;и вы должны также отметить требования к версии для других пакетов, так как это может указывать на изменения API и т.д .;и - Сборка / установка локальной версии.
Но ... в коде (и / или примере кода в документации) могут быть нюансы, которые не будут работать в старыхверсия.И то, что работает для одного пакета, не обязательно будет работать для другого.
Это истинный случай caveat emptor.Риск взлома кода высок.Вероятность выполнения этого ручного процесса для нескольких пакетов высока.Вероятность того, что все это работает с первого раза, мала.
(Конечно, вы всегда можете обратиться к разработчику / сопровождающему, чтобы спросить.)