Эндрю Гельман недавно выразил сожаление по поводу отсутствия простого процесса обновления R (вероятно, более актуального для Windows, чем для Linux). У кого-нибудь есть хороший прием для обновления, от установки программного обеспечения до копирования всех настроек / пакетов?
Это предложение содержалось в комментариях и является тем, что я использовал недавно. Сначала вы устанавливаете новую версию, а затем запускаете ее в старой версии:
#--run in the old version of R
setwd("C:/Temp/")
packages <- installed.packages()[,"Package"]
save(packages, file="Rpackages")
Вслед за этим в новой версии:
#--run in the new version
setwd("C:/Temp/")
load("Rpackages")
for (p in setdiff(packages, installed.packages()[,"Package"]))
install.packages(p)
Ответы:
Просто для полноты, есть несколько способов предотвратить возникновение этой проблемы. Как сказал Дирк, сохраните ваши пакеты в другом каталоге на вашем компьютере.
Вы можете изменить
.Library
значение по умолчанию, используя функцию.libPaths
тожеЭто поместит этот путь в качестве первого значения в
.Library
переменной и сделает его по умолчанию.Если вы хотите еще больше автоматизировать это, вы можете указать это в файле Rprofile.site, который находится в каталоге / etc / вашей сборки R. Затем он будет загружаться автоматически каждый раз, когда загружается R, и вам больше не нужно об этом беспокоиться. Вы можете просто установить и загрузить пакеты из указанного каталога.
Наконец, у меня есть небольшой код, включенный в мой Rprofile.site, который позволяет мне переустанавливать все пакеты при установке новой версии R. Вам просто нужно перечислить их перед обновлением до новой версии R. Я делаю это, используя файл .RData, содержащий обновленный список со всеми пакетами.
Я делаю packagelist.RData, указав
.Last()
в моем Rprofile.site. Это обновляет список пакетов, если я установил некоторые:Когда я устанавливаю новую версию R, я просто добавляю необходимые элементы в файл Rprofile.site, и все пакеты переустанавливаются. В любом случае я должен настроить Rprofile.site (используя контрасты сумм, добавив дополнительный код для Tinn-R, эти вещи), так что это не совсем дополнительная работа. Требуется дополнительное время для установки всех пакетов заново.
Этот последний бит эквивалентен тому, что дано в исходном вопросе в качестве решения. Мне просто не нужно беспокоиться о получении «установленного» списка в первую очередь.
Опять же, это не работает безупречно, если у вас есть пакеты, которые не установлены из CRAN. Но этот код легко расширяем, чтобы включить и те.
источник
.Library
. В моем случае, это указывает на папку установки R, если она не изменилась (что мне особенно не нравится, но хорошо)Конечно, это старый вопрос, но может быть новый простой ответ (работает только для Windows), который я только что нашел.
Лучший способ сделать это из системы RGui. Все ваши пакеты будут перенесены в новую папку, а старые будут удалены или сохранены (вы можете выбрать любой). Затем, как только вы снова откроете RStudio, он сразу обнаружит, что вы используете обновленную версию. Для меня это работает как шарм,
Больше информации о {installr} здесь .
Саймон
источник
Два быстрых предложения:
Используйте пакетные файлы Габора, которые, как говорят, содержат инструменты, помогающие, например, в этом массовом перемещении библиотеки. Предостережение: я не использовал их.
Не устанавливайте библиотеки внутри «filetree» установленной версии R. В Windows я могу поместить R в версию C: / opt / R / R- $, но поместить все библиотеки в C: / opt / R / library /, используя следующий фрагмент, поскольку это в первую очередь решает проблему:
источник
Метод, предложенный выше, не будет полностью работать, если у вас есть пакеты, которые не из CRAN. Например, личный пакет или пакет, загруженный с не-CRAN сайта.
Мой предпочтительный метод в Windows (обновление 2.10.1 до 2.11.0):
R-2.10.0/library/*
вR-2.11.0/library/
update.packages()
источник
Что касается решения, приведенного в вопросе, может быть нелегко запустить старую версию R, если вы уже установили новую версию. В этом случае вы все равно можете переустановить все отсутствующие пакеты из предыдущей версии R следующим образом.
(Обратите внимание, что аргументом
list.files()
в первой строке кода должен быть путь к каталогу библиотеки для вашей предыдущей версии R, где находятся все папки пакетов в предыдущей версии. В моем текущем случае это так"/Library/Frameworks/R.framework/Versions/3.2/Resources/library"
. Это будет иначе, если ваша предыдущая версия R не 3.2, или если вы используете Windows.)Оператор
if
гарантирует, что пакет не установлен, еслиfor
цикла.источник
Следуя предложению Дирка, вот несколько кодов R для этого на Windows: Как легко обновить R на Windows XP
Обновление (15.04.11): я написал еще один пост на эту тему, объясняющий, как решать распространенные проблемы обновления R на Windows 7
источник
installr
который автоматизирует этот процесс (в настоящее время только в Windows). R-statistics.com/tag/installr или github.com/talgalili/installrinstall.packages(installr); library(installr); updateR(TRUE)
. В конце[1] TRUE
появляется. Благодаря превосходному пакету Галили я очень легко перешел с R 3.6.0 на R 3.6.1. Спасибо Тал.Два варианта:
.libPaths("C:/R/library")
источник
У меня Windows 8, и по какой-то странной причине я никогда не могу устанавливать пакеты, используя мои интернет-соединения.
Я обычно устанавливаю его, используя файл .zip из CRAN.
После того, как я пошел от R 3.2.5 до R 3.3.1.
Я просто скопировал пакеты из
C:\Path\to\packa\R\win-library\3.2
кC:\Path\to\packa\R\win-library\3.3
.А потом я перезапустил R сессию. Работал отлично. Я не проверял, ВСЕ ли пакеты работают нормально. Но те, которые я проверил, работают отлично. Надеюсь, этот хак работает для всех.
Приветствия.
источник
Принятый ответ может сработать, если у вас есть предвидение, но я уже избавился от старой версии, поэтому не смог следовать этим указаниям. Описанные ниже шаги работали для обновления OSX с 2.1 и 3.1.
ОБНОВЛЕНО: Чтобы получить каталог для вашей последней версии (вместо ввода в 3.1 или 3.2), вы можете использовать следующие команды. Второй преобразует непосредственно в R-переменную, пропуская
.
и,..
и.DS_Store
используйте:(Добавьте
|pbcopy
в конец, чтобы скопировать его прямо в буфер обмена Mac)Затем в R вы можете вставить эту переменную, которая генерируется. Как только это будет определено в новой версии R, вы можете просмотреть установленные пакеты из приведенных выше инструкций ...
источник
для меня эта страница хороша https://www.r-statistics.com/2013/03/updating-r-from-r-on-windows-using-the-installr-package/ или другой вариант - просто установить новый вариант и в конце концов вы положили, например, в окнах в моем компьютере
.libPaths (c ("D: /Documents/R/win-library/3.2", "C: / Program Files / R / R-3.2.3 / library", "C: / Program Files / R / R-3.2 .0 / библиотека "," D: /Documents/R/win-library/2.15 ")
каждый путь последней версии в моем случае, я всегда ставлю первый путь "D: /Documents/R/win-library/3.2", который исправлен, а затем я ставлю другой, потому что вам не нужно копировать или перемещать какие-либо пакеты, в мой sugest просто позвони
источник
linux
+bash
+debian
+apt
пользователи:Если вы устанавливаете / обновляете до последней версии
R
, мы можем предположить, что у вас естьroot
разрешения. (Не существенно, просто делает процесс намного проще; для согласованности сценарий, приведенный ниже, используетсяsudo
для всех установок.) ПосколькуR
пакеты также устанавливаютсяroot
, таким образом, допустимо размещать их в/usr/local/
.Ссылка
curl
ниже предполагает, что вы уже заинтересованы вsid
выпускеR
самой последней нестабильной версии (как требуется при сборке / проверкеR
пакета), т.е.cat /etc/apt/sources.list | grep 'sid' || exit 1
хотя это можно легко заменить недавним стабильным выпуском, например
buster
.Обратите внимание, что я не использую ключ, как это обычно рекомендуется . Это не обязательно, особенно если (как в следующем скрипте) мы устанавливаем пакеты внутри
R
себя (Rscript -e
ниже). Кроме того, такие ключи имеют тенденцию ломаться / меняться каждые несколько лет. Таким образом, вы, конечно, можете добавить следующее предисловие к файлуR.sh
:sudo apt-key adv --keyserver keyserver.ubuntu.com \ --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
array
ИзR
пакетов явно не является исчерпывающим , но дает некоторые примеры , которые я лично считаю полезным. Новая установка / обновление сdebian
пакетомr-recommended
, как показано ниже, должна предоставить последнюю версию всех стандартных «рекомендуемых» пакетов (напримерsurvival
). Я полагаю, что между выпуском CRAN и обновлением соответствующегоdebian
пакета может быть небольшая задержка . Таким образом, вы можете добавить некоторые из них в списокarray
ниже, если необходима последняя версия «рекомендуемого»R
пакета.В
debian
пакеты , установленные в процессе ниже, также ни существенным (для использованияr-base
) и не является исчерпывающим , но обеспечить NO. из «дополнений», которые важны для разумного нет. изR
пакетов.В любом случае ... поместите следующее в
R.sh
:Затем выполнить его, например , предполагая в каталоге уже:
source R.sh
.Установка пакетов (будь то
debian
илиR
) один за другим в цикле из оболочки несколько неэффективна, но допускает более простое отслеживание ошибок, IMHO. Может занять некоторое время в зависимости от нет. изR
пакетов, так что, возможно , самый простой , чтобы позволить работать на ночь ...источник
r-recommended
. 'r-base-devel' известен какr-base-dev
(debian
package) - уже включен. Я не против использования ключа для безопасности (ответ обновлен). Ответ избегает использованияPPA
= личных архивов пакетов, поскольку они по необходимости зависят от одного человека и, следовательно, потенциально подвержены ошибкам. Как говорит сам Майкл Раттер (2012): «Если вы использовали CRAN, то нет никаких оснований переходить на PPA, поскольку одинаковые пакеты предоставляются в обоих местах».