Встановлення старішої версії пакету R


134

Я намагаюся використовувати Rpy2 та ggplot2, але я отримую помилку. Після деякого пошуку помилки в Інтернеті я виявив, що помилка виникає через те, що в пакеті ggplot2 є зміни, які ще не відображені в Rpy2 (наприклад, див. Цю публікацію (Редагувати: Посилання зараз мертве)).

Тому мені потрібно встановити старішу версію ggplot2. Ось псевдо-код для того, що я хочу:

install.packages("ggplot2", version='0.9.1')

Але аргументу install.packagesне маєversion . Як це зробити?


спробувати checkBuilt? stackoverflow.com/questions/16503554/…
isomorphismes

Відповіді:


150

Щоб встановити старішу версію пакета з джерела (в межах R):

packageurl <- "http://cran.r-project.org/src/contrib/Archive/ggplot2/ggplot2_0.9.1.tar.gz"
install.packages(packageurl, repos=NULL, type="source")

Якщо це не працює для вас і ви працюєте в Windows, причина, ймовірно, у відсутності відповідного ланцюжка інструментів для складання / складання пакетів . Зазвичай ви встановлюєте попередньо складений бінарний файл із CRAN, але вони архівують лише джерела пакунків , а не бінарні файли. [1] Це означає, що вам потрібно встановити Rtools, щоб ви могли скласти все локально. (Примітка: Rtools не є пакетом R. )

Відповідь @ тіні нижче також робить те, що ви можете використовувати devtools::install_version(). Це також гарна ідея, але також підлягає необхідності використання Rtools у Windows.

З 18 вересня 2015 року на CRAN з'явилися нові версії пакетів . Це покладається на сервер MRAN Revolution Analytics для встановлення пакетів для конкретних версій або дат:

# install yesterday's version of checkpoint, by date
install.dates('checkpoint', Sys.Date() - 1)

# install earlier versions of checkpoint and devtools
install.versions(c('checkpoint', 'devtools'), c('0.3.3', '1.6.1'))

Це має перевагу в тому, що Rtools не вимагає встановлення бінарних пакетів у Windows, а працює лише з 2014-09-17 (коли було запущено MRAN).

Щоб встановити старішу версію з командного рядка (за межами R):

Ви також можете встановити пакет, використовуючи R CMD INSTALLв командному рядку (термінал, командний рядок тощо), як тільки на вашому пристрої локально з’явиться джерело пакету («тарбол»), наприклад, використовуючи wget(якщо у вас є):

wget http://cran.r-project.org/src/contrib/Archive/ggplot2/ggplot2_0.9.1.tar.gz

або, якщо ви працюєте в Windows, еквівалент PowerShell буде:

(new-object System.Net.WebClient).DownloadFile("http://cran.r-project.org/src/contrib/Archive/ggplot2/ggplot2_0.9.1.tar.gz", "./ggplot2_0.9.1.tar.gz")

або ви можете просто завантажити джерело з архіву CRAN через веб-браузер.

Щоб встановити з локального файлу, ви можете просто зробити:

R CMD INSTALL ggplot2_0.9.1.tar.gz

Це повинно працювати на будь-якій платформі (з тим самим застереженням, як і вище - про необхідність ланцюга інструментів для створення пакетів).


[1] Це вже не зовсім вірно. З березня 2016 року CRAN розпочав розміщення сервера "Архів CRAN", який містить бінарні файли Windows та Mac для дуже старих версій R (> 5 років). Тепер ви можете встановити безпосередньо з цього сервера за допомогою install.packages(). Див. Нові R FAQ 7.44 для отримання детальної інформації.


4
Дякую, я думаю, це правильний шлях. Шкода, що зараз я отримую: Warning message: package ‘http://cran.r-project.org/src/contrib/Archive/ggplot2/ggplot2_0.9.1.tar.gz’ is not available (for R version 2.15.2)
hirolau

3
Мав подібну проблему з Rcpp. Це може бути пов’язано із залежністю пакета R (DEPENDS: <version>), або можливо, що запущений R сеанс не дозволить вам оновлювати оновлення. Те, що я знайшов, працювало для мене, - це оновлення таким чином, як запропонував Марк Батлер (нижче) (R CMD ВСТАНОВИТИ your_version.tar.gz). Це було для R 2.15.3 в моєму випадку.
Роберт Кейсі

@Antoine Ви в Windows? І якщо так, чи встановлено у вас Rtools?
Томас

@Thomas Дякую за відповідь. Так, я в Windows з Rtools "псевдоінстальована", дивіться цю тему .
Антуан

@Thomas Я намагаюся запустити свій сценарій на Amazon EC2, щоб уникнути явних локальних проблем на моїй машині (бібліотечні шляхи, версії R проти версій пакетів, проблеми компіляції тощо)
Антуан

87

remotesПакет пропонує install_versionфункцію , яка може зробити це безпосередньо.

require(remotes)
install_version("ggplot2", version = "0.9.1", repos = "http://cran.us.r-project.org")

Раніше ця відповідь вказувала на devtoolsпакет, який також реекспортував install_versionфункцію. Дякуємо @MichaelChirico за те, що вказали, що remotesпакунок кращий.


чи можете ви зберігати кілька версій одного пакета без необхідності install_versionкожного разу завантажувати певну версію? скажіть,library(ggplot2-0.9.1)
PatrickT

1
@PatrickT Ви можете це зробити, використовуючи локальну бібліотеку. Наприклад install_version('ggplot2', version = 0.9.1, lib = 'path_to_library_with_ggplot_0.9.1')іlibrary(ggplot2, lib.loc = 'path_to_library_with_ggplot_0.9.1')
тінь

1
ви також можете використовувати .libPaths ("/ dir_for_custom_library_versions") перед запуском install_version
tjjjohnson

1
Сьогодні я думаю, що remotes::install_versionце краще, оскільки remotesце набагато devtoolsdevtools::install_versionremotes::install_version
легший

5

Використання, install.packagesяк описано в іншій відповіді, для мене не працює.

Найкраща альтернатива, яку я знайшов, - це використовувати функцію install_urlз пакету devtools.

Ще одна можливість, яку я не досліджував далі:

  1. Завантажте старіший вихідний файл .tar.gz з архівів пакетів.
  2. Дотримуйтесь кроків, задокументованих на http://rtm.wustl.edu/writings/htrtargz.pdf, щоб встановити його локально.

Це не працює для мене, будь ласка, дотримуйтесь мого запитання stackoverflow.com/q/22673474/684229 для отримання детальної інформації.
TMS

+1, R CMD INSTALLКоманда також працює на Ubuntu. Дякую!!
Фані

5

Ви можете завантажити відповідну версію за посиланням нижче у вигляді поштового файлу.

http://cran.r-project.org/src/contrib/Archive/ggplot2/

У R Studio: Інструменти >> Встановити пакети >> Встановити з: (виберіть спадне меню)

Файл архіву пакунків (.zip, .tar.gz).

Виберіть щойно завантажений пакунок-zip-файл та встановіть пакет


4

Знайшов хороше рішення, яке працювало для мене (деталі - за посиланням ).

Команда в бібліотеці "repmis":

# Install old versions of the e1071 and gtools packages.

# Create vectors of the package names and versions to install
# Note the names and version numbers must be in the same order
Names <- c("e1071", "gtools")
Vers <- c("1.6", "2.6.1")

# Install old package versions into the default library
InstallOldPackages(pkgs = Names, versions = Vers)

1

Чистий install.packages метод

Дивіться цю тему у списку розсилки r-devel . У відповідь на Курта Вілера Курт Хорнік виявляє недокументовану особливість веб-сайту CRAN, щоб вказати конкретну версію пакету.

Цей метод буде працювати, якщо у вас вже встановлені всі необхідні залежності:

package = "https://cran.r-project.org/package=svglite&version=1.2.1"
utils::install.packages(pkgs = package, repos = NULL)

Зверніть увагу на структуру URL-адреси вище. Це вирішує питання про те, що CRAN має іншу структуру URL для останньої версії, ніж для архівованих версій:

# Latest version (not available at Archive/svglite)
https://cran.r-project.org/src/contrib/svglite_1.2.1.tar.gz
# Archived version
https://cran.r-project.org/src/contrib/Archive/svglite/svglite_1.2.0.tar.gz

remotes::install_version метод

Інший варіант полягає у використанні remotes::install_version функції . Однак вам потрібно буде встановити remotes пакет .


0

Існує versionsпакет, який значно спрощує це завдання для версій пакунків, що випускаються з 2014-09-17. Він використовує знімки сервера MRAN в Revolution Analytics для:

  • показати дати випуску та наявність MRAN будь-якого пакету CRAN ( available.versions),

  • встановити вказані версії одного або декількох пакетів ( install.versions) або

  • встановити версії пакету, доступні на будь-яку вказану дату ( install.dates). Він виконує встановлення з сервера MRAN через стандартну install.packagesфункцію, тому доступні бінарні версії можна встановлювати замість того, щоб компілювати з джерела, і залежність від пакета за вказаною датою може бути включена.

Звичайно, можуть виникнути проблеми сумісності з комбінаціями версій пакета та R-версій. Для роботи з різними версіями R див., Наприклад, цю сторінку .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.