Установка более старой версии пакета R

134

Я пытаюсь использовать Rpy2 и ggplot2, но получаю сообщение об ошибке. После некоторого поиска ошибки в Интернете я обнаружил, что ошибка возникает из-за изменений в пакете ggplot2, которые еще не отражены в Rpy2 (например, см. Этот пост (Изменить: ссылка теперь мертва)).

Итак, теперь мне нужно установить старую версию ggplot2. Вот псевдокод того, что я хочу:

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

Но install.packagesне имеет versionаргументов . Как мне это сделать?

hirolau
источник
попробовать 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. )

Ответ @ shadow ниже также указывает на то, что вы можете использовать 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, но работает только с 17 сентября 2014 года (когда был запущен MRAN).

Чтобы установить более старую версию из командной строки (вне R):

Вы также можете установить пакет, используя R CMD INSTALLв командной строке (Терминал, Командная строка и т. Д.), Когда у вас есть исходный код пакета («tarball») локально на вашем компьютере, например, используя 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 Archive», который содержит двоичные файлы 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: <версия>) или может быть, что запущенный сеанс R не позволит вам выполнить обновление. Я обнаружил, что мне удалось выполнить обновление так, как это предложил Марк Батлер (см. Ниже) (R CMD INSTALL your_version.tar.gz). В моем случае это было для R 2.15.3.
Роберт Кейси
@Antoine Вы работаете в Windows? И если да, то установлены ли у вас Rtools?
Thomas
@Thomas Спасибо за ответ. Да, я на Windows , с Rtools «псевдо установленной» видеть эту нить .
Antoine
@Thomas Я попытаюсь запустить свой сценарий на Amazon EC2, чтобы избежать очевидных локальных проблем на моем компьютере (пути к библиотекам, версии R и версии пакетов, проблемы с компиляцией и т. Д.)
Антуан
88

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')
shadow
1
вы также можете использовать .libPaths ("/ dir_for_custom_library_versions") перед запуском install_version
tjjjohnson
1
В настоящее время я думаю, что remotes::install_versionэто предпочтительнее, поскольку remotesэто гораздо более легкий пакет, чем devtools( devtools::install_versionэто всего лишь реэкспорт remotes::install_version)
MichaelChirico
5

Использование, install.packagesкак описано в другом ответе, для меня не работает.

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

Другая возможность, которую я не исследовал дальше:

  1. Загрузите старый исходный файл .tar.gz из архивов пакетов.
  2. Следуйте инструкциям, описанным на http://rtm.wustl.edu/writings/htrtargz.pdf, чтобы установить его локально.
asieira
источник
Это не работает для меня, пожалуйста, ответьте на мой вопрос stackoverflow.com/q/22673474/684229, чтобы узнать подробности.
TMS
+1, R CMD INSTALLкоманда работает и на Ubuntu. Спасибо!!
Фани
5

Вы можете загрузить подходящую версию по ссылке ниже в виде zip-файла.

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

В R Studio: Инструменты >> Установить пакеты >> Установить из: (выберите раскрывающийся список)

Файл архива пакета (.zip, .tar.gz).

Выберите свой недавно загруженный-пакет-zip-файл и установите пакет

user23899
источник
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пакет, который значительно упрощает эту задачу для версий пакета, выпущенных с 17 сентября 2014 года. Он использует моментальные снимки сервера MRAN в Revolution Analytics, чтобы:

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

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

  • установить версии пакетов, доступные на любую указанную дату ( install.dates). Он выполняет установку с сервера MRAN через стандартную install.packagesфункцию, поэтому доступные двоичные версии могут быть установлены вместо того, чтобы компилировать из исходного кода, и могут быть включены зависимости пакетов на указанную дату.

Конечно, могут возникнуть проблемы совместимости с комбинациями версий пакетов и версий R. Для запуска различных версий R см., Например, эту страницу .

магистр педагогических наук
источник