¿Cómo debo tratar con la advertencia "paquete 'xxx' no está disponible (para la versión R xyz)"?


561

99
Tenga en cuenta que cuando usa RStudio, también recibe esta advertencia al instalar desde otro repositorio que no sea CRAN. Es un error que ya informé varias veces, pero no sé si ya está solucionado.
Joris Meys

Respuestas:


563

1. No puedes deletrear

Lo primero que debe probar es ¿ ha escrito correctamente el nombre del paquete? Los nombres de los paquetes distinguen entre mayúsculas y minúsculas en R.


2. No buscaste en el repositorio correcto

A continuación, debe verificar si el paquete está disponible. Tipo

setRepositories()

Ver también ? SetRepositories .

Para ver qué repositorios R buscará su paquete, y opcionalmente seleccione algunos adicionales. Como mínimo, generalmente querrá CRANser seleccionado, y CRAN (extras)si usa Windows, y los Bioc*repositorios si hace alguno[gen / prote / metabol / transcript] ómicas análisis biológicos

Para cambiar esto permanentemente, agregue una línea como setRepositories(ind = c(1:6, 8))a su Rprofile.sitearchivo.


3. El paquete no está en los repositorios que seleccionó

Devuelva todos los paquetes disponibles usando

ap <- available.packages()

Ver también los nombres de los paquetes disponibles de R , ? Available.packages .

Como se trata de una matriz grande, es posible que desee utilizar el visor de datos para examinarla. Alternativamente, puede verificar rápidamente para ver si el paquete está disponible probando con los nombres de las filas.

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

Alternativamente, la lista de paquetes disponibles se puede ver en un navegador para CRAN , CRAN (extras) , Bioconductor , R-forge , RForge y github .

Otro posible mensaje de advertencia que puede recibir al interactuar con los espejos CRAN es:

Warning: unable to access index for repository

Lo que puede indicar que el repositorio CRAN seleccionado no está disponible actualmente. Puede seleccionar un espejo diferente con chooseCRANmirror()e intentar la instalación nuevamente.


Hay varias razones por las cuales un paquete puede no estar disponible.


4. No quieres un paquete

Quizás realmente no quieras un paquete. Es común confundirse acerca de la diferencia entre un paquete y una biblioteca , o un paquete y un conjunto de datos.

Un paquete es una colección estandarizada de material que se extiende R, por ejemplo, proporciona código, datos o documentación. Una biblioteca es un lugar (directorio) donde R sabe encontrar paquetes que puede usar

Para ver los conjuntos de datos disponibles, escriba

data()

5. R o Bioconductor está desactualizado

Puede depender de una versión más reciente de R (o de uno de los paquetes que importa / depende). Mirar

ap["foobarbaz", "Depends"]

y considere actualizar su instalación de R a la versión actual. En Windows, esto se hace más fácilmente a través del installrpaquete.

library(installr)
updateR()

(Por supuesto, es posible que install.packages("installr")primero necesite ).

De manera equivalente para los paquetes de Bioconductor, es posible que deba actualizar su instalación de Bioconductor.

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

6. El paquete está desactualizado

Puede haber sido archivado (si ya no se mantiene y ya no pasa las R CMD checkpruebas).

En este caso, puede cargar una versión anterior del paquete usando install_version()

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

Una alternativa es instalar desde el espejo github CRAN.

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

7. No hay binario de Windows / OS X / Linux

Es posible que no tenga un binario de Windows debido a que requiere un software adicional que CRAN no tiene. Además, algunos paquetes están disponibles solo a través de las fuentes para algunas o todas las plataformas. En este caso, puede haber una versión en el CRAN (extras)repositorio (ver setRepositoriesarriba).

Si el paquete requiere un código de compilación (por ejemplo, C, C ++, FORTRAN), en Windows instale Rtools o en OS X instale las herramientas de desarrollador que acompañan a XCode e instale la versión de origen del paquete a través de:

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

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

En CRAN, puede saber si necesitará herramientas especiales para construir el paquete desde el origen mirando el NeedsCompilationindicador en la descripción.


8. El paquete está en github / Bitbucket / Gitorious

Puede tener un repositorio en Github / Bitbucket / Gitorious. Estos paquetes requieren que el remotespaquete se instale.

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

(Al igual que installr, es posible que install.packages("remotes")primero deba hacerlo ).


9. No hay una versión fuente del paquete

Aunque la versión binaria de su paquete está disponible, la versión fuente no lo está. Puede desactivar esta verificación configurando

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

como se describe en esta respuesta SO de imanuelc y la sección Detalles de ?install.packages.


10. El paquete está en un repositorio no estándar

Su paquete está en un repositorio no estándar (por ejemplo Rbbg). Suponiendo que cumple razonablemente con los estándares CRAN, aún puede descargarlo usando install.packages; solo tiene que especificar la URL del repositorio.

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

RHIPEpor otro lado no está en un repositorio tipo CRAN y tiene sus propias instrucciones de instalación .


2
@KonradRudolph también Viewfunciona en R GUI, Architect, Revo-R y Live-R. No lo he probado en emacs / ESS.
Richie Cotton

Ah, mi mal. Pensé que había verificado y descubrí que la función no existía. Por supuesto que sí (pero no funciona para mí en OS X ... ).
Konrad Rudolph

99
Creo que vale la pena mencionar que installrsolo funciona en Windows
David Arenburg

2
"Es común estar confundido acerca de la diferencia entre un paquete y una biblioteca" - bueno, duh: los propios desarrolladores de R están confundidos acerca de eso. ¿De qué otra manera explicar la función library? Sin embargo, en ese sentido, ¿no debería esta respuesta mencionar / explicar .libPaths? Las rutas de biblioteca no configuradas o que no se pueden escribir parecen ser uno de los problemas más comunes al instalar paquetes.
Konrad Rudolph

1
Sugeriría incluir otro punto: Intentar instalar paquetes que vienen dentro de r-core, como en esta pregunta , en la que intenta instalar el parallelpaquete, cuando ya está en r-core
Sergio Fernández

90

En la última R (3.2.3) hay un error que impide que algunas veces encuentre el paquete correcto. La solución es establecer el repositorio manualmente:

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

Solución encontrada en otra pregunta


44
Sospechaba que este era el caso. Sin embargo, parece ser un error en r-studio. Acabo de probar y no necesito configurar el repositorio si solo ejecuto R desde la terminal, solo desde r-studio.
adempewolff

Y 3.5.1 también. Antes de configurar dependenciesy repos, R no pudo conectarse https://mirrors.sorengard.com/cran/src/contrib/PACKAGES(y, por lo tanto, la solución de problemas en otra pregunta no funcionó). Después, pude acceder a ese sitio a pesar de que los paquetes todavía no se cargan de la manera más simple.
user3386170

También en mi otra computadora que tiene la versión 3.5.0.
user3386170

Estoy intentando cargar blotter y quantstrat en la versión 3.6.0, y usé este código, pero fue en vano: "Advertencia en install.packages: el paquete 'quantstrat' no está disponible (para R versión 3.6.0)". ¿Cualquier otra sugerencia?
W Barker

Tuve el mismo problema con e1071y R 3.6.1 en macOS High Sierra. Gracias por la ayuda
Igor F.

25

Parece haber un problema con algunas versiones de Ry libcurl. He tenido el mismo problema Mac (R version 3.2.2)y, Ubuntu (R version 3.0.2)y en ambos casos, se resolvió simplemente ejecutando esto antes del install.packagescomando

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

La solución fue sugerida por un amigo, sin embargo, no pude encontrarla en ninguno de los foros, por lo tanto, envié esta respuesta a otros.


2
para mi configuración, habiendo curlinstalado apt en Ubuntu y la antigua R 2.15.0, install.packages(..., method="curl")solucionó el problema
jangorecki

Tenía que hacerlo en method="curl"lugar de hacerlo wget, pero solucionó el problema
Jeff

install_versionen devtoolsme ayudó a solucionar esto. A mi Mac tampoco le gustó wget. (Tenía R 3.2.3 quejándose de no poder encontrar un paquete de archivo usando http://. Otros paquetes se estaban instalando bien)
D. Woods

Esto funcionó para mí con una instalación de R 3.2.2 en Ubuntu Linux 64 bit
Darren Wilkinson

22

Esta solución puede romper R, pero aquí hay una solución más fácil que funciona el 99% del tiempo.

Lo que debes hacer es solo:

install.packages('package-name',repos='http://cran.us.r-project.org')

Como mencionó el autor aquí


2
y ese 1% soy yo: / install.packages ('graph', repos = ' cran.us.r-project.org' )
Sahil Nagpal

Intenté instalar el paquete stringrusando este comando pero falló para mí. install.packages('stringr',repos = "http://cran.us.r-project.org", dependencies = TRUE) Installing package into ‘/usr/lib/spark/R/lib’ (as ‘lib’ is unspecified) Warning: unable to access index for repository http://cran.us.r-project.org/src/contrib: cannot open URL 'http://cran.us.r-project.org/src/contrib/PACKAGES' Warning message: package ‘stringr’ is not available (for R version 3.4.1)
Regresor

Parece que soy parte del 1% también, no funcionó para mí
NetEmmanuel

15

11. R (u otra dependencia) está desactualizado y no desea actualizarlo.

Advertencia, esta no es exactamente la mejor práctica.

  • Descargue la fuente del paquete.
  • Navega hasta el DESCRIPTIONarchivo.
  • Elimine la línea ofensiva con su editor de texto, por ejemplo

    Depends: R (>= 3.1.1)
  • Instalar desde local (es decir, desde el directorio principal de DESCRIPTION) por ejemplo

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

77
Por lo general, la dependencia establecida en la versión R está ahí por una razón, puede ser conveniente verificar qué tal cambio potencialmente se romperá.
jangorecki

1
@dardisco No eliminó la dependencia, pero gracias a su comentario encontré las dependencias y veo que solo necesito actualizar R. Gracias
sa_zy

9

Algo que me sucedió es que la versión de R proporcionada por mi distribución de Linux (R versión 3.0.2 proporcionada por Ubuntu 14.04) era demasiado antigua para la última versión del paquete disponible en CRAN (en mi caso, la plyrversión 1.8.3 a partir de hoy). La solución fue utilizar el sistema de empaquetado de mi distribución en lugar de intentar instalar desde R ( apt-get install r-cran-plyrobtuve la versión 1.8.1 de plyr). Tal vez podría haber intentado actualizar R usando updateR(), pero me temo que hacerlo interferiría con el administrador de paquetes de mi distribución.


Para problemas con Ubuntu, consulte el archivo
Joris Meys

Esta solución me funcionó para debian para el paquete mvtnormque ksdepende. Comando fueapt-get install r-cran-mvtnorm
Justapigeon

8

Esto me ahorró mucho tiempo depurando lo que está mal. En muchos casos son solo espejos desactualizados. Esta función puede instalar múltiples paquetes con sus dependencias usando 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"))

6

Esto es lo que finalmente pude hacer para instalar el paquete psicológico en R-3.4.1 cuando recibí la misma advertencia

1: busqué en Google ese paquete.

2: lo descargué manualmente con la extensión tar.gz

3: Elija la opción "Archivo de archivo de paquete (.zip; .tar.gz)" para instalar paquetes en R

4: navegué localmente hasta el lugar donde se descargó y se hizo clic en instalar

Puede recibir una advertencia: las dependencias 'xyz' no están disponibles para el paquete, luego instale las del repositorio y luego realice los pasos 3-4.


4

He arreglado este error en Ubuntu siguiendo cuidadosamente las instrucciones para instalar R . Esto incluyó:

  1. agregando deb http://cran.utstat.utoronto.ca/bin/linux/ubuntu trusty/a mi /etc/apt/sources.list archivo
  2. Corriendo sudo apt-get update
  3. Corriendo sudo apt-get install r-base-dev

Para el paso 1, si lo desea, puede elegir cualquier espejo de descarga CRAN en lugar de mi Universidad de Toronto.


De esta manera resolví mi problema, pero aún actualizo mi R a la versión más reciente (de 3.02a 3.4). Si desea actualizar su R, esta es una buena manera.
Belter

4

Cometí el error de olvidar ponerlo repos=NULLal instalar el paquete R desde el código fuente. En este caso, el mensaje de error es ligeramente engañoso:package 'foobarbaz' is not available (for R version x.y.z)

El problema no era la versión de R, era el reposparámetro. Hice lo install.packages('path/to/source/code/of/foobarbaz', type='source', repos=NULL)que funcionó para mí en esta ocasión.

Espero que esto ayude a alguien.


1
Cuando intento install.packages ('foobarbaz', repos = NULL) obtengo el error "Error en install.packages (" pair ", repos = NULL): type ==" both "no se puede usar con 'repos = NULL'"
Ajay B

1
Gracias por el comentario: creo que olvidé escribir el type="source"parámetro, ya que mencioné que instalé este paquete desde el código fuente, editaré la respuesta.
Damjan

3

Tuve el mismo problema (en Linux) que podría resolverse cambiando la configuración del proxy. Si está detrás de un servidor proxy, verifique la configuración utilizando Sys.getenv("http_proxy")R. En mi ~/.Renviron, tuve las siguientes líneas (de https://support.rstudio.com/hc/en-us/articles/200488488-Configuring-R-to-Use -un-HTTP-or-HTTPS-Proxy ) que causa el problema:

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

Cambiándolo a

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

resuelve el problema. Puedes hacer lo mismo para https.

No fue lo primero que pensé cuando leí "el paquete xxx no está disponible para r versión-xyz" ...

HTH


2

Otra razón + solución

Me encuentro con este error ("el paquete XXX no está disponible para la versión R XXX") cuando intento instalar pkgdown en mi RStudio en el HPC de mi empresa.

Resulta que la instantánea de CRAN que tienen en el HPC es de enero de 2018 (casi 2 años) y, de hecho, pkgdown no existía en ese momento. Eso estaba destinado a controlar el origen de los paquetes para usuarios legos, pero como desarrollador, en la mayoría de los casos, puede cambiar eso de la siguiente manera:

## 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()

Si sabe lo que está haciendo y puede necesitar más de un paquete que podría no estar disponible en el CRAN de su sistema, puede configurarlo en su proyecto .Rprofile .

Si es solo un paquete, tal vez solo use install.packages("package name", repos = "a newer CRAN than your company's archaic CRAN snapshot").


2
  1. Visite https://cran.r-project.org/src/contrib/Archive/ .
  2. Encuentra el paquete que deseas instalar con Ctrl+F
  3. Haga clic en el nombre del paquete
  4. Determine qué versión desea instalar
  5. Abrir RStudio
  6. Escriba " install.packages("https://cran.r-project.org/src/contrib/Archive/[NAME OF PACKAGE]/[VERSION NUMBER].tar.gz", repos = NULL, type="source")"

En algunos casos, debe instalar varios paquetes por adelantado para usar el paquete que desea usar.

Por ejemplo, necesitaba instalar paquetes 7 ( Sejong, hash, rJava, tau, RSQLite, devtools, stringr) para instalar KoNLPel paquete.

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)

1

Casi siempre funciona para mí cuando uso bioconductor como fuente y luego invoco biocLite. Ejemplo:

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

1
Eso es solo para los paquetes de bioconductores, y esta es también la forma en que se deben instalar los paquetes de bioconductores.
Joris Meys

@JorisMeys Me parece que todos los paquetes que intenté instalar hasta ahora estaban disponibles a través de este método, pero estoy usando principalmente R para bioinformática.
bli

1
@JorisMeys No sé cómo, pero biocLitepuedo recuperar estos paquetes de forma transparente en cran e instalarlos. Acabo de probar dplyr(en Xubuntu 16.04, si eso importa). Con la esperanza de evitar el desorden tanto como sea posible, ahora trato de instalar todos los paquetes "de la misma manera" (actualmente usando biocLite).
bli

2
@bli tienes razón, estoy corregido. El código en biocLitereconoce los repositorios correctos para el paquete y luego llama install.packages()para hacer la instalación real. Pero no funciona porque lo usas biocLite. Funciona porque install.packages()hace lo que se supone que debe hacer. No hay diferencia entre usar biocLite()y install.packages()otros que no sean los gastos generales y el hecho de que, biocLite()de forma predeterminada, también actualiza todos los demás paquetes que considere necesarios. Por lo tanto, todavía recomendaría usar install.packages()para paquetes que no sean bioconductores.
Joris Meys

2
@bli no garantiza la compatibilidad, actualiza todo a la última versión (a menos que lo ponga suppressUpdates = TRUE). Esto es lo mismo que llamar update.packages()y luego install.packages(). Porque eso es literalmente lo que biocLitehace debajo del capó.
Joris Meys

0

Otra adición menor, al intentar probar una versión R antigua usando la imagen acoplable rocker/r-ver:3.1.0

  1. La reposconfiguración predeterminada es MRANy esto no puede obtener muchos paquetes.
  2. Esa versión de R no tiene https, así, por ejemplo: install.packages("knitr", repos = "https://cran.rstudio.com")parece funcionar.

0

Descubrí que una ligera variación en el paquete # 6 está desactualizada debido a la excelente solución de @Richie Cotton.

A veces, el mantenedor del paquete puede mostrar brechas en la versión R que no admite. En ese caso, tiene al menos dos opciones: 1) actualizar su versión R a la siguiente que el paquete de destino ya admite, 2) instalar la versión más reciente de las más antiguas disponibles que funcionaría con su versión R.

Un ejemplo concreto: la última versión CRAN del paquete rattlepara minería de datos, 5.3.0, no es compatible con la versión R 3.4 porque tenía una gran actualización entre las versiones 5.2.0 (R> = 2.13.0) y 5.3.0 (R > = 3.5).

En un caso como este, la alternativa a la actualización de la instalación de R es la solución ya mencionada. Instale el paquete devtoolssi no lo tiene (incluye el paquete remotes) y luego instale la versión específica que funcionará en su R. actual. Puede buscar esa información en la página de CRAN para los archivos de paquetes específicos.

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

0

En mi caso, la solución fue simplemente actualizar R.


-1

Como se mencionó aquí (en francés), esto puede suceder cuando tiene dos versiones de R instaladas en su computadora. Desinstale el más antiguo, luego intente la instalación del paquete nuevamente. Funcionó bien para mí.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.