r - Правильно ли копировать пакеты старой версии r в новую папку, в которой находятся пакеты новой версии? - PullRequest
0 голосов
/ 02 мая 2018

Я установил последнюю версию r 3.5.0 и скопировал все пакеты из моей старой версии 3.4.3 и вставил их в папку текущей версии 3.5 Я думаю, что это не хороший способ скопировать и вставить пакеты, потому что RStudio просит меня переустановить пакет, который я вызываю. Например, это дает мне эту ошибку при установке zoo:

Error: package or namespace load failed for ‘zoo’:
package ‘zoo’ was installed by an R version with different internals; it 
needs to be reinstalled for use with this R version

Что я должен сделать, чтобы правильно их скопировать?

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

По крайней мере, для Windows и, возможно, для других, то, что вы сделали, плюс то, что предлагает @Ben Bolker, именно то, что в руководстве сказано большинству людей:

Для большинства людей лучше всего [...] скопировать все установленные пакеты в папку библиотеки в новой установке, запустить update.packages (checkBuilt = TRUE, ask = FALSE) в новом R, а затем удалите все, что осталось от старой установки.

От: https://cran.r -project.org / bin / windows / base / rw-FAQ.html # What_0027s-the-best-way-to-upgrade_003f

Однако они также квалифицируют, что, говоря, что это «дело вкуса», поэтому, если вы найдете другой метод, который подходит вам, я просто хочу указать, что метод, который вы пробовали, действителен и даже предлагается документация.

ОБНОВЛЕНИЕ: Я только что обновил R в моей собственной системе, и, поскольку я использую фиксированное расположение для своих пакетов (т.е. без номера версии в пути), я даже не копировал их из одного места в другое, я только сделал update.packages(checkBuilt = TRUE, ask = FALSE) часть, и она отлично работает.

0 голосов
/ 02 мая 2018

Гораздо безопаснее пересобрать пакеты для более новой версии R, чем копировать их.

Самый простой способ перестроить все пакеты, это сохранить список пакетов в старой версии R в файле, затем загрузить его в новую версию R и установить их:

# In old version of R:
ip <- installed.packages()[,1]
write(ip,"rpackages_in_3.4.3.txt")
q()

# In new version of R:
ip_3.4.3 <- readLines("rpackages_in_3.4.3.txt")
setRepositories(graphics=FALSE, ind=1:6)
install.packages(ip)

Существует также пакет installr , который может быть полезен для этой цели: https://cran.r -project.org / веб / пакеты / installr / installr.pdf

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...