Обновленный R, скопированная библиотека, по-прежнему не удается найти пакеты и не может установить все зависимости - PullRequest
1 голос
/ 22 февраля 2020

Я обновил R с помощью installr и попросил скопировать мою библиотеку. (Несмотря на то, что у меня никогда не было этой работы, я продолжаю надеяться, что, возможно, когда-нибудь она будет обновлена.) Открыл RStudio и, как обычно, не может найти ни одного из пакетов, которые были в моей старой библиотеке. Затем я скопировал все файлы из моей старой библиотеки в мою новую библиотеку, и некоторые критические из них все еще не работают. Например, когда я пытался загрузить tidyverse, я получаю сообщение: Error: package or namespace load failed for ‘tidyverse’: package ‘lazyeval’ was installed by an R version with different internals; it needs to be reinstalled for use with this R version.

Я пытался remove.packages("tidyverse"), а затем install.packages("tidyverse", dependencies = TRUE), и я все еще получаю то же сообщение о пакете lazyeval. Я попытался установить lazyeval, но потом, когда я go повторил те же самые шаги, чтобы попытаться использовать tidyverse, теперь это lubridate, который был установлен в версии R с различными внутренними компонентами.

Как я могу избежать этого невероятно раздражающего и отнимающего много времени итерационного процесса попытки установить пакет, увидев, что внутренние компоненты неправильны для некоторого зависимого пакета, установив какой-либо пакет, который был проблемой, установив пакет, который мне действительно нужен о, а затем выяснить, какие другие зависимости являются проблемами?

1 Ответ

0 голосов
/ 23 февраля 2020

Пакет tidyverse почти ничего не содержит: его основная цель - загрузить кучу других пакетов. Удаление и обновление не поможет обновить другие пакеты. Вы можете сделать то, что @ phago29 предложил в их комментарии, но проще всего просто обновить все. Запустите эту команду в сеансе R:

update.packages(ask = FALSE, checkBuilt = TRUE)

Несколько замечаний:

  • Если у вас есть возможности администратора, запустите от имени администратора, и он обновит вашу основную библиотеку. , Если вы этого не сделаете, он установит новые копии в вашей учетной записи пользователя.

  • Даже если вы говорите ask = FALSE, он может задать несколько вопросов о том, можете ли вы создавать пакеты из источника. Ответьте «Да», если ваша система настроена на это, «Нет», если нет. Если вы не уверены, попробуйте «Да», а если возникнут сбои при установке, запустите его снова и скажите «Нет».)

  • Это может продолжаться некоторое время, так что go прочь и выпей кофе или еще что-нибудь.

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