Come devo comportarmi con il messaggio “pacchetto ‘xxx’ non disponibile (per la versione R xyz)”?

Ho provato ad installare un pacchetto, usando

install.packages("foobarbaz") 

ma ha ricevuto l’avvertimento

 Warning message: package 'foobarbaz' is not available (for R version xyz) 

Perché R non ritiene che il pacchetto sia disponibile?

Vedi anche queste domande che si riferiscono a casi specifici di questo problema:

Il mio pacchetto non funziona per R 2.15.2
il pacchetto ‘Rbbg’ non è disponibile (per R versione 2.15.2)
il pacchetto non è disponibile (per R versione 2.15.2)
pacchetto doMC NON disponibile per l’avviso R versione 3.0.0 in install.packages
Dipendenza ‘Rglpk’ non è disponibile per il pacchetto ‘fPortfolio’
Cosa fare quando un pacchetto non è disponibile per la nostra versione R?
Il pacchetto Bigvis per R non è disponibile per R versione 3.0.1?
il pacchetto ‘syncwave’ / ‘mvcwt’ non è disponibile (per R versione 3.0.2)
il pacchetto ‘diamonds’ non è disponibile (per R versione 3.0.0)
Il pacchetto plyr per R non è disponibile per R versione 3.0.2?
https://stackoverflow.com/questions/21580661/installing-predictabel-package-on-r-2-15-2
Il pacchetto bigmemory non si installa su R 64 3.0.2
il pacchetto “makeR” non è disponibile (per la versione 3.0.2)
il pacchetto ‘RTN’ non è disponibile (per R versione 3.0.1)
Problemi nell’installazione del pacchetto geoR
il pacchetto ‘twitterR’ non è disponibile (per R versione 3.1.0)
Come installare ‘Rcpp, pacchetto? Ho ricevuto “pacchetto non disponibile”
il pacchetto ‘dataset’ non è disponibile (per R versione 3.1.1)
“pacchetto ‘rhipe’ non è disponibile (per R versione 3.1.2)”
https://stackoverflow.com/questions/31439092/package-dplyr-is-not-available-for-r-version-3-1-1

    1. Non puoi fare lo spelling

    La prima cosa da verificare è che hai digitato correttamente il nome del pacchetto? I nomi dei pacchetti sono case sensitive in R.


    2. Non hai cercato nel repository giusto

    Successivamente, dovresti controllare se il pacchetto è disponibile. genere

     setRepositories() 

    Vedi anche ? SetRepositories .

    Per vedere quali repository R cercherà il tuo pacchetto, e opzionalmente selezionarne altri. Per lo meno, di solito vuoi che venga selezionato CRAN (extras) e CRAN (extras) se usi Windows e i repository Bioc* se fai qualsiasi [/ prote / metabol / trascrizione Gen] omiche analisi biologiche.

    Per modificarlo in modo permanente, aggiungi una riga come setRepositories(ind = c(1:6, 8)) nel tuo file Rprofile.site .


    3. Il pacchetto non si trova nei repository selezionati

    Restituisci tutti i pacchetti disponibili usando

     ap < - available.packages() 

    Vedi anche i pacchetti disponibili di Names of R,? Available.packages .

    Poiché questa è una matrice di grandi dimensioni, potresti voler utilizzare il visualizzatore di dati per esaminarlo. In alternativa, puoi verificare rapidamente se il pacchetto è disponibile testando i nomi delle righe.

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

    In alternativa, l'elenco dei pacchetti disponibili può essere visualizzato in un browser per CRAN , CRAN (extra) , Bioconductor , R-forge , RForge e github .

    Un altro messaggio di avvertenza che potresti ricevere quando interagisci con i mirror CRAN è:

     Warning: unable to access index for repository 

    Che potrebbe indicare che il repository CRAN selezionato è attualmente non disponibile. È ansible selezionare un mirror diverso con chooseCRANmirror() e riprovare l'installazione.


    Ci sono diversi motivi per cui un pacchetto potrebbe non essere disponibile.


    4. Non vuoi un pacchetto

    Forse non vuoi davvero un pacco. È normale essere confusi sulla differenza tra un pacchetto e una libreria , o un pacchetto e un set di dati.

    Un pacchetto è una raccolta standardizzata di materiale che estende R, ad esempio fornendo codice, dati o documentazione. Una libreria è un luogo (directory) in cui R sa trovare i pacchetti che può usare

    Per vedere i set di dati disponibili, digitare

     data() 

    5. R o Bioconductor non è aggiornato

    Può avere una dipendenza da una versione più recente di R (o da uno dei pacchetti da cui importa / dipende). Guarda a

     ap["foobarbaz", "Depends"] 

    e considera di aggiornare l'installazione R alla versione corrente. Su Windows, questo è fatto più facilmente tramite il pacchetto installr .

     library(installr) updateR() 

    (Naturalmente, potrebbe essere necessario install.packages("installr") ).

    Equivalentemente per i pacchetti Bioconductor, potrebbe essere necessario aggiornare l'installazione del Bioconductor.

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

    6. Il pacchetto non è aggiornato

    Potrebbe essere stato archiviato (se non è più mantenuto e non passa più i test di R CMD check ).

    In questo caso, puoi caricare una versione precedente del pacchetto usando install_version()

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

    Un'alternativa è l'installazione dal mirror di Github CRAN.

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

    7. Non esiste un binario Windows / OS X / Linux

    Potrebbe non avere un binario di Windows a causa della richiesta di software aggiuntivo che CRAN non ha. Inoltre, alcuni pacchetti sono disponibili solo tramite i sorgenti di alcune o tutte le piattaforms. In questo caso, potrebbe esserci una versione nel repository CRAN (extras) (vedere setRepositories sopra).

    Se il pacchetto richiede la compilazione del codice (ad esempio C, C ++, FORTRAN), quindi su Windows installare Rtools o su OS X installare gli strumenti di sviluppo che accompagnano XCode e installare la versione sorgente del pacchetto tramite:

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

    Su CRAN, puoi dire se avrai bisogno di strumenti speciali per NeedsCompilation il pacchetto dal sorgente guardando il flag NeedsCompilation nella descrizione.


    8. Il pacchetto è su github / Bitbucket / Gitorious

    Potrebbe avere un repository su Github / Bitbucket / Gitorious. Questi pacchetti richiedono il pacchetto di remotes da installare.

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

    (Come con installr , potrebbe essere necessario installr . install.packages("remotes") .)


    9. Non esiste una versione di origine del pacchetto

    Sebbene sia disponibile la versione binaria del pacchetto, la versione sorgente non lo è. È ansible distriggersre questo controllo impostando

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

    come descritto in questa risposta SO di imanuelc e nella sezione Dettagli di ?install.packages .


    10. Il pacchetto si trova in un repository non standard

    Il pacchetto è in un repository non standard (ad es. Rbbg ). Supponendo che sia ragionevolmente compatibile con gli standard CRAN, è ancora ansible scaricarlo tramite install.packages ; devi solo specificare l'URL del repository.

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

    RHIPE altra parte, RHIPE non si trova in un repository di tipo CRAN e ha le proprie istruzioni di installazione .

    Nella versione R (3.2.3) più recente c’è un bug, che impedisce alcune volte di trovare il pacchetto corretto. La soluzione alternativa è impostare il repository manualmente:

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

    Soluzione trovata in altra domanda

    Sembra esserci un problema con alcune versioni di R e libcurl . Ho avuto lo stesso problema su Mac (R version 3.2.2) e Ubuntu (R version 3.0.2) e in entrambi i casi è stato risolto semplicemente eseguendolo prima del comando install.packages

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

    La soluzione è stata suggerita da un amico, tuttavia, non sono stato in grado di trovarlo in nessuno dei forum, inviando quindi questa risposta per gli altri.

    11. R (o un’altra dipendenza) non è aggiornato e non si desidera aggiornarlo.

    Attenzione, questa non è esattamente la migliore pratica.

    • Scarica la fonte del pacchetto.
    • Passare al file DESCRIPTION .
    • Rimuovi la riga incriminata con il tuo editor di testo es

       Depends: R (>= 3.1.1) 
    • Installa da locale (cioè dalla directory padre di DESCRIPTION ) ad es

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

    Una cosa che è accaduta per me è che la versione di R fornita dalla mia distribuzione Linux (R versione 3.0.2 fornita da Ubuntu 14.04) era troppo vecchia per l’ultima versione del pacchetto disponibile su CRAN (nel mio caso, plyr versione 1.8. 3 ad oggi). La soluzione era usare il sistema di packaging della mia distribuzione invece di provare a installare da R ( apt-get install r-cran-plyr mi ha preso la versione 1.8.1 di plyr ). Forse avrei potuto provare ad aggiornare R usando updateR() , ma temo che così facendo interferirebbe con il gestore dei pacchetti della mia distribuzione.

    Questo mi ha fatto risparmiare un sacco di tempo nel debug di ciò che è sbagliato. In molti casi sono solo specchi non aggiornati. Questa funzione può installare più pacchetti con le loro dipendenze 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")) 

    Questo è quello che finalmente potrei fare per installare il pacchetto psicico in R-3.4.1 quando ricevo lo stesso avvertimento

    1: su Google per quel pacchetto.

    2: scaricato manualmente con estensione tar.gz

    3: Scelta l’opzione “Pacchetto Archive File (.zip; .tar.gz)” per i pacchetti di installazione in R

    4: navigato localmente nel punto in cui è stato scaricato e fatto clic su Installa

    È ansible che venga visualizzato un avviso: dipendenze ‘xyz’ non disponibili per il pacchetto, quindi prima installare quelli dal repository e quindi eseguire i passaggi 3-4.

    Ho corretto questo errore su Ubuntu seguendo attentamente le istruzioni per l’installazione di R. Questo includeva:

    1. aggiungendo deb http://cran.utstat.utoronto.ca/bin/linux/ubuntu trusty/ al mio file /etc/apt/sources.list
    2. Esecuzione sudo apt-get update
    3. Esecuzione di sudo apt-get install r-base-dev

    Per la fase 1 puoi scegliere qualsiasi mirror di download CRAN al posto della mia università di Toronto, se lo desideri.

    Ho avuto lo stesso problema (su Linux) che potrebbe essere risolto cambiando le impostazioni del proxy. Se sei dietro un server proxy controlla la configurazione usando Sys.getenv("http_proxy") all’interno di R. Nel mio ~/.Renviron ho avuto le seguenti righe (da https://support.rstudio.com/hc/en-us / articles / 200488488-Configurare-R-to-use-an-HTTP-or-HTTPS-Proxy ) causando il problema:

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

    Cambiandolo a

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

    problema risolto. Puoi fare lo stesso per https .

    Non è stato il primo pensiero quando ho letto “pacchetto xxx non è disponibile per r versione-xyz” …

    HTH

    Ho fatto l’errore di dimenticare di mettere repos=NULL quando si installa il pacchetto R dal codice sorgente. In questo caso il messaggio di errore è leggermente fuorviante: il package 'foobarbaz' is not available (for R version xyz)

    Il problema non era la versione di R, era il parametro repos . Ho install.packages('path/to/source/code/of/foobarbaz', type='source', repos=NULL) che ha funzionato per me in questa occasione.

    Spero che questo aiuti qualcuno.

    Funziona quasi sempre per me quando uso il bioconduttore come sorgente e poi invoco biocLite. Esempio:

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

    Come accennato qui (in francese), ciò può accadere quando sul computer sono installate due versioni di R. Disinstallare il più vecchio, quindi riprovare l’installazione del pacchetto! Ha funzionato bene per me.

    Un’altra piccola aggiunta, mentre cercavo di testare una vecchia versione di R usando il docker image rocker/r-ver:3.1.0

    1. L’impostazione di MRAN predefinita è MRAN e questo non riesce a ottenere molti pacchetti.
    2. Quella versione di R non ha https , quindi, ad esempio: install.packages("knitr", repos = "https://cran.rstudio.com") sembra funzionare.

    Ho riscontrato lo stesso problema sull’installazione del pacchetto “sentimento”. Iniziato a cercare e provato molti comandi. Infine il pacchetto installato usando il seguente comando:

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