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

Resuelto Richie Cotton asked hace 54 años • 19 respuestas

Intenté instalar un paquete, usando

install.packages("foobarbaz")

pero recibió la advertencia

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

¿Por qué R no cree que el paquete esté disponible?

Consulte también estas preguntas que se refieren a casos específicos de este problema:

Mi paquete no funciona para R 2.15.2
paquete 'Rbbg' no está disponible (para R versión 2.15.2)
paquete no está disponible (para R versión 2.15.2)
paquete doMC NO disponible para R versión 3.0.0 advertencia en install.packages
La dependencia 'Rglpk' no está disponible para el paquete 'fPortfolio' ¿
Qué hacer cuando un paquete no está disponible para nuestra versión R?
¿El paquete bigvis para R no está disponible para la versión 3.0.1 de R?
El paquete 'syncwave'/'mvcwt' no está disponible (para R versión 3.0.2)
el paquete 'diamonds' no está disponible (para R versión 3.0.0)
¿El paquete plyr para R no está disponible para R versión 3.0.2?
El paquete bigmemory no se instala en R 64 3.0.2
El paquete "makeR" no está disponible (para la versión 3.0.2)
El paquete 'RTN' no está disponible (para R versión 3.0.1)
Problemas al instalar el paquete geoR El
paquete 'twitterR' no está disponible (para R versión 3.1.0) ¿
Cómo instalar el paquete 'Rcpp? Recibí "el paquete no está disponible",
el paquete 'conjunto de datos' no está disponible (para R versión 3.1.1)
"el paquete 'rhipe' no está disponible (para R versión 3.1.2)"

Richie Cotton avatar Jan 01 '70 08:01 Richie Cotton
Aceptado

1. No puedes deletrear

Lo primero que debes comprobar es ¿has 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()

Véase también ?setRepositories .

Para ver qué repositorios buscará R para su paquete y, opcionalmente, seleccionar algunos adicionales. Como mínimo, normalmente querrás CRANque te seleccionen, y CRAN (extras)si usas Windows, y los Bioc*repositorios si realizas algún análisis biológico.

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 seleccionaste

Devuelve todos los paquetes disponibles usando

ap <- available.packages()

Consulte también Nombres de los paquetes disponibles de R , ?available.packages .

Dado que se trata de una matriz grande, es posible que desee utilizar el visor de datos para examinarla. Alternativamente, puede verificar rápidamente si el paquete está disponible probándolo 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 chooseCRANmirror()e intentar la instalación nuevamente.


Hay varias razones por las que 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 amplía R, por ejemplo, proporcionando 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/de los que depende). Mira a

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 tengas que hacerlo install.packages("installr")primero).

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

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

6. El paquete está desactualizado

Es posible que se haya archivado (si ya no se mantiene y ya no pasa R CMD checklas pruebas).

En este caso, puede cargar una versión antigua del paquete usandoinstall_version()

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

Una alternativa es instalar desde el espejo CRAN de GitHub.

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

7. No hay ningún binario de Windows/OS X/Linux

Es posible que no tenga un binario de Windows debido a que requiere software adicional que CRAN no tiene. Además, algunos paquetes están disponibles sólo 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 compilar código (por ejemplo, C, C++, FORTRAN), en Windows instale Rtools o en OS X, instale las herramientas de desarrollo que acompañan a XCode e instale la versión fuente 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 compilar el paquete desde el código fuente mirando la NeedsCompilationbandera 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 con installr, es posible que tengas que hacerlo install.packages("remotes")primero).


9. No existe una versión fuente del paquete.

Aunque la versión binaria de su paquete está disponible, la versión fuente no. 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 cumpla razonablemente con los estándares CRAN, aún puede descargarlo usando install.packages; sólo tienes 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 .

Richie Cotton avatar Sep 08 '2014 10:09 Richie Cotton

En R 3.2.3 (nuevo en 2016) había un error que en ocasiones impedía encontrar el paquete correcto. La solución es configurar el repositorio manualmente:

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

Solución encontrada en otra pregunta.

Dmitry avatar Mar 03 '2016 03:03 Dmitry

Esta solución podría romper R, pero aquí hay una solución más sencilla que funciona el 99% de las veces.

Lo que necesitas hacer es simplemente:

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

Como lo menciona el autor aquí.

PaladiN avatar Sep 07 '2018 03:09 PaladiN

Parece haber un problema con algunas versiones de Ry libcurl. Tuve el mismo problema en Mac (R version 3.2.2)ambos Ubuntu (R version 3.0.2)casos y 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 que envío esta respuesta para otros.

Saba avatar Mar 18 '2016 12:03 Saba