Как мне поступить с предупреждением "пакет" xxx "недоступен (для версии R xyz)"?

Я пытался установить пакет, используя

install.packages("foobarbaz")

но получил предупреждение

Warning message:
package 'foobarbaz' is not available (for R version x.y.z)

Почему R не думает, что пакет доступен?

Смотрите также эти вопросы, относящиеся к конкретным случаям этой проблемы:

Мой пакет не работает для R 2.15.2
пакет 'Rbbg' недоступен (для версии R 2.15.2)
пакет недоступен (для версии R 2.15.2)
Пакет doMC НЕ доступен для R версии 3.0.0 предупреждение в install.packages
Зависимость 'Rglpk' недоступна для пакета 'fPortfolio'
Что делать, если пакет недоступен для нашей версии R?
Пакет bigvis for R недоступен для версии 3.0.1 R?
пакет 'syncwave' / 'mvcwt' недоступен (для версии R 3.0.2)
Пакет "Бриллианты" недоступен (для версии R 3.0.0)
Пакет plyr для R недоступен для версии 3.0.2 R?
https://stackru.com/questions/21580661/installing-predictabel-package-on-r-2-15-2
Пакет bigmemory не устанавливается на R 64 3.0.2
пакет "makeR" недоступен (для версии 3.0.2)
пакет "RTN" недоступен (для версии R 3.0.1)
Проблемы с установкой пакета geoR
пакет 'twitterR' недоступен (для версии R 3.1.0)
Как установить 'Rcpp, пакет? Я получил "пакет не доступен"
пакет 'набор данных' недоступен (для версии R 3.1.1)
"пакет 'rhipe' недоступен (для версии R 3.1.2)"
https://stackru.com/questions/31439092/package-dplyr-is-not-available-for-r-version-3-1-1

16 ответов

Решение

1. Вы не можете записать

Первое, что нужно проверить, правильно ли вы написали название пакета? Имена пакетов чувствительны к регистру в R.


2. Вы не смотрели в правильном хранилище

Затем вы должны проверить, доступен ли пакет. Тип

setRepositories()

Смотрите также ? SetRepositories.

Чтобы увидеть, какие репозитории R будет искать ваш пакет, и при необходимости выберите несколько дополнительных. По крайней мере, вы обычно хотите CRAN быть выбранным, и CRAN (extras) если вы используете Windows, а Bioc* хранилища, если вы делаете какие-либо [GEN / PROTE / Metabol / транскриптов] omics биологические анализы.

Чтобы навсегда изменить это, добавьте строку вроде setRepositories(ind = c(1:6, 8)) на ваш Rprofile.site файл.


3. Пакет отсутствует в выбранных вами репозиториях.

Верните все доступные пакеты, используя

ap <- available.packages()

Смотрите также Имена доступных пакетов R,? Available.packages.

Поскольку это большая матрица, вы можете использовать средство просмотра данных для ее изучения. Кроме того, вы можете быстро проверить, доступен ли пакет, проверив имена строк.

View(ap)
"foobarbaz" %in% rownames(ap)

Кроме того, список доступных пакетов можно увидеть в браузере для CRAN, CRAN (дополнительно), Bioconductor, R-forge, RForge и github.

Другое возможное предупреждение, которое вы можете получить при взаимодействии с зеркалами CRAN:

Warning: unable to access index for repository

Что может указывать на то, что выбранный репозиторий CRAN в настоящее время недоступен. Вы можете выбрать другое зеркало с chooseCRANmirror() и попробуйте установку еще раз.


Существует несколько причин, по которым пакет может быть недоступен.


4. Вы не хотите посылку

Возможно, вы действительно не хотите посылку. Распространено путать разницу между пакетом и библиотекой или пакетом и набором данных.

Пакет представляет собой стандартизированный набор материалов, расширяющих R, например, предоставляющий код, данные или документацию. Библиотека - это место (каталог), где R знает, как найти пакеты, которые он может использовать.

Чтобы увидеть доступные наборы данных, введите

data()

5. R или Биокондуктор устарел

Он может зависеть от более поздней версии R (или от одного из пакетов, которые он импортирует / зависит от). смотреть на

ap["foobarbaz", "Depends"]

и рассмотрите возможность обновления вашей версии R до текущей версии. В Windows это проще всего сделать через installr пакет.

library(installr)
updateR()

(Конечно, вам может понадобиться install.packages("installr") первый.)

Эквивалентно для пакетов Bioconductor, вам может потребоваться обновить установку Bioconductor.

source("http://bioconductor.org/biocLite.R")
biocLite("BiocUpgrade")

6. Пакет устарел

Возможно, он был заархивирован (если он больше не поддерживается и не проходит R CMD check тесты).

В этом случае вы можете загрузить старую версию пакета, используя install_version()

library(remotes)
install_version("foobarbaz", "0.1.2")

Альтернативой является установка с github зеркала CRAN.

library(remotes)
install_github("cran/foobarbaz")

7. Нет бинарного файла для Windows/OS X/Linux

Он может не иметь бинарного файла Windows из-за необходимости дополнительного программного обеспечения, которого нет у CRAN. Кроме того, некоторые пакеты доступны только через источники для некоторых или всех платформ. В этом случае может быть версия в CRAN (extras) хранилище (см. setRepositories выше).

Если пакет требует компиляции кода (например, C, C++, FORTRAN), то в Windows установите Rtools или в OS X установите инструменты разработчика, сопровождающие XCode, и установите исходную версию пакета через:

install.packages("foobarbaz", type = "source")

# Or equivalently, for Bioconductor packages:
source("http://bioconductor.org/biocLite.R")
biocLite("foobarbaz", type = "source")

В CRAN вы можете узнать, нужны ли вам специальные инструменты для сборки пакета из исходного кода, посмотрев на NeedsCompilation флаг в описании.


8. Пакет находится на github/Bitbucket/Gitorious

У него может быть хранилище на Github/Bitbucket/Gitorious. Эти пакеты требуют remotes пакет для установки.

library(remotes)
install_github("packageauthor/foobarbaz")
install_bitbucket("packageauthor/foobarbaz")
install_gitorious("packageauthor/foobarbaz")

(Как с installr Вам может понадобиться install.packages("remotes") первый.)


9. Исходной версии пакета не существует

Хотя бинарная версия вашего пакета доступна, исходная версия - нет. Вы можете отключить эту проверку, установив

options(install.packages.check.source = "no")

как описано в этом SO ответе от imanuelc и в разделе Подробности ?install.packages,


10. Пакет находится в нестандартном репозитории

Ваша посылка находится в нестандартном хранилище (например, Rbbg). Предполагая, что он достаточно совместим со стандартами CRAN, вы все равно можете загрузить его, используя install.packages; Вам просто нужно указать URL хранилища.

install.packages("Rbbg", repos = "http://r.findata.org")

RHIPE с другой стороны, отсутствует в CRAN-подобном хранилище и имеет собственные инструкции по установке.

В последней версии R (3.2.3) есть ошибка, которая иногда не позволяет найти правильный пакет. Обходной путь должен установить хранилище вручную:

install.packages("lubridate", dependencies=TRUE, repos='http://cran.rstudio.com/')

Нашел решение в другом вопросе

Это решение может сломать R, но вот самое простое решение, которое работает 99% времени.

Вам нужно сделать это просто:

install.packages ('имя-пакета', repos = ' http://cran.us.r-project.org/')

Как упомянуто автором здесь

Кажется, есть проблема с некоторыми версиями R а также libcurl, У меня была такая же проблема на Mac (R version 3.2.2) а также Ubuntu (R version 3.0.2) и в обоих случаях это было решено просто путем запуска этого до install.packages команда

options(download.file.method = "wget")

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

  1. Посетите https://cran.r-project.org/src/contrib/Archive/.
  2. Найдите пакет, который хотите установить Ctrl + F
  3. Щелкните название пакета
  4. Определите, какую версию вы хотите установить
  5. Откройте RStudio
  6. Тип "install.packages("https://cran.r-project.org/src/contrib/Archive/[NAME OF PACKAGE]/[VERSION NUMBER].tar.gz", repos = NULL, type="source")"

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

Например, мне нужно было установить 7 пакетов (Sejong, hash, rJava, tau, RSQLite, devtools, stringr) установить KoNLP пакет.

install.packages('Sejong')
install.packages('hash')
install.packages('rJava')
install.packages('tau')
install.packages('RSQLite')
install.packages('devtools')
install.packages('stringr')

library(Sejong)
library(hash)
library(rJava)
library(tau)
library(RSQLite)
library(devtools)
library(stringr)

install.packages("https://cran.r-project.org/src/contrib/Archive/KoNLP/KoNLP_0.80.2.tar.gz", repos = NULL, type="source")
library(KoNLP)

11. R (или другая зависимость) устарела, и вы не хотите ее обновлять.

Предупреждение, это не совсем лучшая практика.

  • Загрузите исходный код пакета.
  • Перейдите к DESCRIPTION файл.
  • Удалите оскорбительную строку в вашем текстовом редакторе, например

    Depends: R (>= 3.1.1)
    
  • Установить из локального (т.е. из родительского каталога DESCRIPTION) например

    install.packages("foo", type="source", repos=NULL)
    

Одна вещь, которая произошла со мной, заключается в том, что версия R, предоставленная моим дистрибутивом linux (версия R 3.0.2, предоставленная Ubuntu 14.04), была слишком старой для последней версии пакета, доступной в CRAN (в моем случае, plyr версия 1.8.3 на сегодняшний день). Решением было использовать упаковочную систему моего дистрибутива вместо попытки установки с R (apt-get install r-cran-plyr получил меня версия 1.8.1 из plyr). Может быть, я мог бы попытаться обновить R с помощью updateR(), но я боюсь, что это помешает менеджеру пакетов моего дистрибутива.

Это сэкономило мне много времени на устранение неполадок. Во многих случаях просто зеркала устарели. Эта функция может устанавливать несколько пакетов с их зависимостями, используя https://cran.rstudio.com/:

packages <- function(pkg){
    new.pkg <- pkg[!(pkg %in% installed.packages()[, "Package"])]
    if (length(new.pkg))
        install.packages(new.pkg, dependencies = TRUE, repos='https://cran.rstudio.com/')
    sapply(pkg, require, character.only = TRUE)
}

packages(c("foo", "bar", "baz"))

Это то, что я наконец смог сделать для установки пакета psych в R-3.4.1, когда получил такое же предупреждение

1: Гуглил для этого пакета.

2: скачал его вручную с расширением tar.gz

3: Выберите опцию "Файл архива пакета (.zip;.tar.gz)" для установки пакетов в R

4: локально просматривал место, где он был загружен, и нажимал кнопку "Установить"

Вы можете получить предупреждение: зависимости 'xyz' недоступны для пакета, затем сначала установите их из репозитория, а затем выполните шаги 3-4 .

Я сделал ошибку, забыв поставить repos=NULL при установке пакета R из исходного кода. В этом случае сообщение об ошибке немного вводит в заблуждение: package 'foobarbaz' is not available (for R version x.y.z)

Проблема была не в версии R, а в repos параметр. я сделал install.packages('path/to/source/code/of/foobarbaz', type='source', repos=NULL) который работал для меня по этому поводу.

Надеюсь, это кому-нибудь поможет.

Я исправил эту ошибку в Ubuntu, тщательно следуя инструкциям по установке R. Это включало:

  1. добавление deb http://cran.utstat.utoronto.ca/bin/linux/ubuntu trusty/ в мой файл /etc/apt/sources.list
  2. Бег sudo apt-get update
  3. Бег sudo apt-get install r-base-dev

Для первого шага вы можете выбрать любое загрузочное зеркало CRAN вместо моего Университета Торонто, если хотите.

В моем случае решением было просто обновить R.

У меня была та же проблема (в Linux), которую можно было решить, изменив настройки прокси. Если вы находитесь за прокси-сервером, проверьте конфигурацию, используя Sys.getenv("http_proxy") внутри Р. По моему ~/.Renviron У меня были следующие строки (из https://support.rstudio.com/hc/en-us/articles/200488488-Configuring-R-to-Use-an-HTTP-or-HTTPS-Proxy), вызывающие проблему:

http_proxy=https://proxy.dom.com:port
http_proxy_user=user:passwd

Меняя его на

http_proxy="http://user:passwd@proxy.dom.com:port"

решил проблему. Вы можете сделать то же самое для https,

Это была не первая мысль, когда я прочитал "Пакет xxx не доступен для r version-xyz" ...

НТН

Другая причина + решение

Я столкнулся с этой ошибкой ("пакет XXX недоступен для версии R XXX") при попытке установить pkgdown в моем RStudio на HPC моей компании.

Оказывается, снимок CRAN, который у них есть на HPC, сделан в январе 2018 года (почти 2 года назад), и действительно, pkgdown тогда не существовало. Это было предназначено для управления источником пакетов для непрофессиональных пользователей, но как разработчик вы в большинстве случаев можете изменить это:

## checking the specific repos you currently have
getOption("repos")

## updating your CRAN snapshot to a newer date
r <- getOption("repos")
r["newCRAN"] <- "https://cran.microsoft.com/snapshot/*2019-11-07*/"
options(repos = r)

## add newCRAN to repos you can use
setRepositories()

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

Если это всего лишь один пакет, возможно, просто используйте install.packages("package name", repos = "a newer CRAN than your company's archaic CRAN snapshot").

Я обнаружил, что небольшая вариация в пакете №6 устарела по сравнению с отличным решением @Richie Cotton.

Иногда сопровождающий пакета может показать пробелы в версии R, которые он не поддерживает. В этом случае у вас есть как минимум два варианта: 1) обновить версию R до следующей, которую уже поддерживает целевой пакет, 2) установить самую последнюю версию из более старых доступных, которая будет работать с вашей версией R.

Конкретный пример: последняя версия пакета CRAN rattle для интеллектуального анализа данных, 5.3.0, не поддерживает R версии 3.4, потому что у него было большое обновление между версиями пакета 5.2.0 (R >= 2.13.0) и 5.3.0 (R >=3.5).

В таком случае альтернативой обновлению установки R является уже упомянутое решение. Установить пакетdevtools если у вас его нет (в него входит пакет remotes), а затем установите конкретную версию, которая будет работать в вашем текущем R. Вы можете найти эту информацию на странице CRAN для конкретных архивов пакетов.

library("devtools")
install_version("rattle", version = "5.2.0", repos = "http://cran.us.r-project.org")

Это почти всегда работает для меня, когда я использую bioconductor в качестве источника и затем вызываю biocLite. Пример:

source("https://bioconductor.org/biocLite.R")
biocLite("preprocessCore")

Еще одно незначительное дополнение при попытке проверить старую версию R с помощью образа докера rocker/r-ver:3.1.0

  1. По умолчанию repos настройка MRAN и это не может получить много пакетов.
  2. Эта версия R не имеет httpsтак, например:install.packages("knitr", repos = "https://cran.rstudio.com") похоже на работу.

Как упоминалось здесь (на французском языке), это может произойти, если на вашем компьютере установлены две версии R. Удалите самую старую версию, а затем повторите попытку установки пакета! Это работало нормально для меня.

Я столкнулся с той же проблемой при установке пакета "sentiment". Начал поиск и перепробовал много команд. Наконец, пакет установлен с помощью следующей команды:

install_url("http://cran.r-project.org/src/contrib/Archive/sentiment/sentiment_0.2.tar.gz")

devtools + GitHub. Эти 3 строки (помогли мне в этой ошибке) еще не были упомянуты:

install.packages("devtools")  # if not already installed
library(devtools)
install_git("https://github.com/profile/foobarbaz_repository")
Другие вопросы по тегам