Bagaimana saya harus berurusan dengan peringatan "paket 'xxx' tidak tersedia (untuk versi R xyz)"?


561

9
Perhatikan bahwa saat menggunakan RStudio, Anda mendapatkan peringatan ini juga saat menginstal dari repo lain selain CRAN. Itu bug yang sudah saya laporkan beberapa kali, tetapi saya tidak tahu apakah sudah disortir.
Joris Meys

Jawaban:


563

1. Anda tidak bisa mengeja

Hal pertama yang harus diuji adalah apakah Anda mengeja nama paket dengan benar? Nama paket peka huruf besar-kecil di R.


2. Anda tidak melihat di repositori yang tepat

Selanjutnya, Anda harus memeriksa untuk melihat apakah paket tersebut tersedia. Tipe

setRepositories()

Lihat juga ? SetRepositori .

Untuk melihat repositori R mana yang akan mencari paket Anda, dan secara opsional pilih beberapa tambahan. Paling tidak, biasanya Anda menginginkannyaCRAN dipilih, danCRAN (extras) jika Anda menggunakan Windows, dan Bioc*repositori jika Anda melakukan[gen / prote / metabol / transkrip] omics analisis biologis.

Untuk mengubah ini secara permanen, tambahkan baris seperti setRepositories(ind = c(1:6, 8))ke Rprofile.sitefile Anda .


3. Paket tidak dalam repositori yang Anda pilih

Kembalikan semua paket yang tersedia menggunakan

ap <- available.packages()

Lihat juga Nama paket yang tersedia R , ? available.packages .

Karena ini adalah matriks besar, Anda mungkin ingin menggunakan penampil data untuk memeriksanya. Atau, Anda dapat dengan cepat memeriksa untuk melihat apakah paket itu tersedia dengan menguji terhadap nama-nama baris.

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

Atau, daftar paket yang tersedia dapat dilihat di browser untuk CRAN , CRAN (ekstra) , Bioconductor , R-forge , RForge , dan github .

Pesan peringatan lain yang mungkin Anda dapatkan saat berinteraksi dengan cermin CRAN adalah:

Warning: unable to access index for repository

Yang mungkin menunjukkan repositori CRAN yang dipilih saat ini tidak tersedia. Anda dapat memilih cermin yang berbeda dengan chooseCRANmirror()dan mencoba pemasangan lagi.


Ada beberapa alasan mengapa suatu paket mungkin tidak tersedia.


4. Anda tidak menginginkan paket

Mungkin Anda tidak benar-benar menginginkan paket. Adalah umum untuk bingung tentang perbedaan antara paket dan pustaka , atau paket dan dataset.

Paket adalah kumpulan standar dari materi yang memperluas R, mis. Memberikan kode, data, atau dokumentasi. Pustaka adalah tempat (direktori) di mana R tahu untuk menemukan paket yang bisa digunakan

Untuk melihat kumpulan data yang tersedia, ketik

data()

5. R atau Bioconductor kedaluwarsa

Ini mungkin memiliki ketergantungan pada versi R yang lebih baru (atau salah satu paket yang diimpor / tergantung pada apakah). Melihat

ap["foobarbaz", "Depends"]

dan pertimbangkan untuk memperbarui instalasi R Anda ke versi saat ini. Di Windows, ini paling mudah dilakukan melalui installrpaket.

library(installr)
updateR()

(Tentu saja, Anda mungkin perlu install.packages("installr")terlebih dahulu.)

Setara dengan paket Bioconductor, Anda mungkin perlu memperbarui instalasi Bioconductor Anda.

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

6. Paket kedaluwarsa

Mungkin telah diarsipkan (jika tidak lagi dipertahankan dan tidak lagi lulus R CMD checktes).

Dalam hal ini, Anda dapat memuat versi lama dari paket menggunakan install_version()

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

Alternatifnya adalah menginstal dari cermin CRAN github.

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

7. Tidak ada biner Windows / OS X / Linux

Mungkin tidak memiliki biner Windows karena memerlukan perangkat lunak tambahan yang tidak dimiliki CRAN. Selain itu, beberapa paket hanya tersedia melalui sumber untuk beberapa atau semua platform. Dalam hal ini, mungkin ada versi di CRAN (extras)repositori (lihat di setRepositoriesatas).

Jika paket memerlukan kode kompilasi (mis. C, C ++, FORTRAN) maka pada Windows instal Rtools atau pada OS X instal alat pengembang yang menyertai XCode, dan instal versi sumber paket melalui:

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

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

Pada CRAN, Anda dapat mengetahui apakah Anda memerlukan alat khusus untuk membangun paket dari sumber dengan melihat NeedsCompilationtanda di deskripsi.


8. Paket ini ada di github / Bitbucket / Gitorious

Mungkin memiliki repositori di Github / Bitbucket / Gitorious. Paket-paket ini membutuhkan remotespaket untuk menginstal.

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

(Seperti halnya installr, Anda mungkin perlu install.packages("remotes")terlebih dahulu.)


9. Tidak ada versi sumber paket

Meskipun versi biner dari paket Anda tersedia, versi sumbernya tidak. Anda dapat mematikan pemeriksaan ini dengan mengatur

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

seperti yang dijelaskan dalam jawaban SO ini oleh imanuelc dan bagian Rincian ?install.packages.


10. Paket ini dalam repositori non-standar

Paket Anda dalam repositori non-standar (misalnya Rbbg). Dengan asumsi bahwa itu cukup sesuai dengan standar CRAN, Anda masih dapat mengunduhnya menggunakan install.packages; Anda hanya perlu menentukan URL repositori.

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

RHIPEdi sisi lain tidak ada dalam repositori seperti CRAN dan memiliki instruksi instalasi sendiri .


2
@KonradRudolph Viewbekerja di R GUI, Architect, Revo-R dan Live-R juga. Belum mencoba di emacs / ESS.
Richie Cotton

Ah, salahku. Saya pikir saya sudah memeriksa dan menemukan bahwa fungsi itu tidak ada. Tentu saja (tapi itu tidak berhasil untuk saya di OS X ... ).
Konrad Rudolph

9
Saya pikir itu layak disebut yang installrhanya bekerja di windows
David Arenburg

2
“Adalah umum untuk bingung tentang perbedaan antara paket dan perpustakaan” - yah, duh: Pengembang R sendiri bingung tentang itu. Bagaimana cara menjelaskan fungsinya library? Namun, dalam nada itu, tidak seharusnya jawaban ini menyebutkan / menjelaskan .libPaths? Jalur pustaka yang tidak disetel atau tidak dapat ditulis tampaknya menjadi salah satu masalah yang paling umum saat menginstal paket.
Konrad Rudolph

1
Saya menyarankan untuk memasukkan poin lain: Mencoba menginstal paket yang datang di dalam r-core, seperti dalam pertanyaan ini , yang mencoba menginstal parallelpaket, ketika sudah ada di r-core
Sergio Fernández

90

Dalam R terbaru (3.2.3) ada bug, mencegahnya beberapa kali menemukan paket yang benar. Solusinya adalah mengatur repositori secara manual:

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

Menemukan solusi dalam pertanyaan lain


4
Diduga bahwa inilah masalahnya. Tampaknya ada bug di r-studio. Saya baru saja menguji dan saya tidak perlu mengatur repositori jika saya baru saja meluncurkan R dari terminal - hanya dari dalam r-studio.
adempewolff

Dan 3.5.1 juga. Sebelum mengatur dependenciesdan repos, R tidak dapat terhubung https://mirrors.sorengard.com/cran/src/contrib/PACKAGES(dan dengan demikian pemecahan masalah dalam pertanyaan lain tidak berhasil). Setelah itu, saya bisa mengakses situs itu meskipun paket masih tidak memuat dengan cara yang sederhana.
user3386170

Juga di komputer saya yang lain yang memiliki versi 3.5.0.
user3386170

Saya mencoba memuat blotter dan quantstrat dalam versi 3.6.0, dan menggunakan kode ini, tetapi tidak berhasil: "Peringatan di install.packages: paket 'quantstrat' tidak tersedia (untuk R versi 3.6.0)". Ada saran lain?
W Barker

Punya masalah yang sama dengan e1071dan R 3.6.1 di macOS High Sierra. Terima kasih atas bantuannya
Igor F.

25

Tampaknya ada masalah dengan beberapa versi Rdan libcurl. Saya memiliki masalah yang sama Mac (R version 3.2.2)dan Ubuntu (R version 3.0.2)dan dalam kedua kasus itu diselesaikan hanya dengan menjalankan ini sebelum install.packagesperintah

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

Solusinya disarankan oleh seorang teman, namun, saya belum dapat menemukannya di salah satu forum, maka mengirimkan jawaban ini untuk orang lain.


2
untuk pengaturan saya, setelah curldipasang di Ubuntu dan R 2.15.0 lama, install.packages(..., method="curl")memang memperbaiki masalah
jangorecki

Saya harus melakukan method="curl"daripada wget, tapi itu memperbaiki masalah
Jeff

install_versiondi devtoolsmembantu saya menyiasati ini. Mac saya juga tidak suka wget. (Saya punya R 3.2.3 mengeluh tentang tidak dapat menemukan paket arsip menggunakan http://. Paket lain menginstal dengan baik)
D. Woods

Ini bekerja untuk saya dengan instalasi R 3.2.2 di Ubuntu Linux 64 bit
Darren Wilkinson

22

Solusi ini mungkin mematahkan R tetapi di sini adalah solusi termudah yang bekerja 99% dari waktu.

Yang perlu Anda lakukan hanyalah:

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

Seperti yang disebutkan oleh penulis di sini


2
dan 1% itu adalah saya: / install.packages ('graph', repos = ' cran.us.r-project.org' )
Sahil Nagpal

Saya mencoba menginstal paket stringrmenggunakan perintah ini tetapi gagal untuk saya. 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

Sepertinya saya bagian dari 1% juga, itu tidak berhasil untuk saya
NetEmmanuel

15

11. R (atau ketergantungan lain) kedaluwarsa dan Anda tidak ingin memperbaruinya.

Peringatan ini bukan praktik terbaik.

  • Unduh sumber paket.
  • Arahkan ke DESCRIPTIONfile.
  • Hapus baris yang menyinggung dengan editor teks Anda misalnya

    Depends: R (>= 3.1.1)
  • Instal dari lokal (mis. Dari direktori induk DESCRIPTION) mis

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

7
Biasanya ketergantungan yang disebutkan pada versi R ada karena suatu alasan, mungkin bijaksana untuk memeriksa perubahan apa yang berpotensi pecah.
jangorecki

1
@dardisco Tidak menghapus dependensi, tetapi berkat komentar Anda, saya menemukan dependensi dan saya melihat bahwa saya hanya perlu memutakhirkan R. Terima kasih
sa_zy

9

Satu hal yang terjadi pada saya adalah bahwa versi R yang disediakan oleh distribusi linux saya (R versi 3.0.2 yang disediakan oleh Ubuntu 14.04) terlalu tua untuk versi terbaru dari paket yang tersedia di CRAN (dalam kasus saya, plyrversi 1.8.3 pada hari ini). Solusinya adalah menggunakan sistem pengemasan distribusi saya alih-alih mencoba menginstal dari R ( apt-get install r-cran-plyrmembuat saya versi 1.8.1 dari plyr). Mungkin saya bisa mencoba memperbarui R menggunakan updateR(), tetapi saya khawatir hal itu akan mengganggu manajer paket distribusi saya.


Untuk masalah dengan Ubuntu, periksa README: cran.r-project.org/bin/linux/ubuntu/README
Joris Meys

Solusi ini berfungsi untuk saya untuk debian untuk paket mvtnormyang ksbergantung pada. Command wasapt-get install r-cran-mvtnorm
Justapigeon

8

Ini menghemat banyak waktu men-debug apa yang salah. Dalam banyak kasus hanya mirror yang ketinggalan zaman. Fungsi ini dapat menginstal beberapa paket dengan dependensinya menggunakan 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

Inilah yang akhirnya bisa saya lakukan untuk menginstal paket psik di R-3.4.1 ketika saya mendapat peringatan yang sama

1: Di-Google-Google untuk paket itu.

2: mengunduhnya secara manual memiliki ekstensi tar.gz

3: Pilih opsi "Paket Arsip File (.zip; .tar.gz)" untuk menginstal paket di R

4: melihat-lihat secara lokal ke tempat itu diunduh dan diklik instal

Anda mungkin mendapatkan peringatan: dependensi 'xyz' tidak tersedia untuk paket, kemudian instal yang dari repositori dan kemudian lakukan langkah 3-4.


4

Saya tetap kesalahan ini pada Ubuntu dengan hati-hati mengikuti petunjuk untuk menginstal R . Ini termasuk:

  1. menambahkan deb http://cran.utstat.utoronto.ca/bin/linux/ubuntu trusty/ke file /etc/apt/sources.list saya
  2. Lari sudo apt-get update
  3. Lari sudo apt-get install r-base-dev

Untuk langkah 1, Anda dapat memilih cermin unduhan CRAN di tempat Universitas Toronto saya jika Anda mau.


Cara ini menyelesaikan masalah saya, tetapi masih memperbarui R saya ke versi terbaru (dari 3.02ke 3.4). Jika Anda ingin memperbarui R, ini cara yang bagus.
Belter

4

Saya membuat kesalahan dengan lupa meletakkan repos=NULLketika menginstal paket R dari kode sumber. Dalam hal ini pesan kesalahan agak menyesatkan:package 'foobarbaz' is not available (for R version x.y.z)

Masalahnya bukan versi R, itu adalah reposparameternya. Saya melakukan install.packages('path/to/source/code/of/foobarbaz', type='source', repos=NULL)yang bekerja untuk saya dalam kesempatan ini.

Semoga ini bisa membantu seseorang.


1
Ketika saya mencoba install.packages ('foobarbaz', repos = NULL) Saya mendapatkan error "Kesalahan dalam install.packages (" pair ", repos = NULL): ketik ==" keduanya "tidak dapat digunakan dengan 'repos = NULL'"
Ajay B

1
Terima kasih atas komentarnya - Saya rasa saya lupa menulis type="source"parameter karena saya sebutkan saya menginstal paket ini dari kode sumber, saya akan mengedit jawabannya.
Damjan

3

Saya memiliki masalah yang sama (di Linux) yang bisa diselesaikan dengan mengubah pengaturan proxy. Jika Anda berada di belakang server proxy periksa konfigurasi menggunakan Sys.getenv("http_proxy")dalam R. Dalam saya ~/.Renvironsaya punya baris berikut (dari https://support.rstudio.com/hc/en-us/articles/200488488-Configuring-R-to-Use -an-HTTP-or-HTTPS-Proxy ) yang menyebabkan masalah:

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

Mengubahnya menjadi

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

memecahkan masalah. Anda dapat melakukan hal yang sama untuk https.

Itu bukan pikiran pertama ketika saya membaca "paket xxx tidak tersedia untuk r versi-xyz" ...

HTH


2

Solusi + alasan lain

Saya mengalami kesalahan ini ("paket XXX tidak tersedia untuk versi R XXX") ketika mencoba menginstal pkgdown di RStudio saya di HPC perusahaan saya.

Ternyata, snapshot CRAN yang mereka miliki di HPC adalah dari Januari 2018 (hampir 2 tahun) dan memang pkgdown tidak ada saat itu. Itu dimaksudkan untuk mengontrol sumber paket untuk pengguna awam, tetapi sebagai pengembang, dalam banyak kasus Anda dapat mengubahnya dengan:

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

Jika Anda tahu apa yang Anda lakukan dan mungkin membutuhkan lebih dari satu paket yang mungkin tidak tersedia di CRAN sistem Anda, Anda dapat mengatur ini di proyek Anda .Rprofile.

Jika hanya satu paket, mungkin gunakan saja install.packages("package name", repos = "a newer CRAN than your company's archaic CRAN snapshot").


2
  1. Kunjungi https://cran.r-project.org/src/contrib/Archive/ .
  2. Temukan paket yang ingin Anda instal dengan Ctrl+F
  3. Klik nama paket
  4. Tentukan versi mana yang ingin Anda instal
  5. Buka RStudio
  6. Ketik " install.packages("https://cran.r-project.org/src/contrib/Archive/[NAME OF PACKAGE]/[VERSION NUMBER].tar.gz", repos = NULL, type="source")"

Dalam beberapa kasus, Anda perlu menginstal beberapa paket terlebih dahulu untuk menggunakan paket yang ingin Anda gunakan.

Sebagai contoh, saya diperlukan untuk menginstal 7 paket ( Sejong, hash, rJava, tau, RSQLite, devtools, stringr) untuk menginstal KoNLPpaket.

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

Hampir selalu berfungsi untuk saya ketika saya menggunakan bioconductor sebagai sumber dan kemudian memanggil biocLite. Contoh:

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

1
Itu hanya untuk paket biokonduktor, dan ini juga cara paket biokonduktor harus diinstal.
Joris Meys

@ JorisMeys Menurut saya semua paket yang saya coba instal sejauh ini tersedia melalui metode ini, tetapi saya terutama menggunakan R untuk bioinformatika.
bli

1
@ JorisMeys Saya tidak tahu caranya, tetapi saya biocLitebisa mengambil paket ini secara transparan di cran dan menginstalnya. Saya baru saja menguji dplyr(pada Xubuntu 16.04, jika itu penting). Berharap untuk menghindari kekacauan sebanyak mungkin, sekarang saya mencoba menginstal semua paket "dengan cara yang sama" (saat ini menggunakan biocLite).
bli

2
@Bli Anda benar, saya berdiri dikoreksi. Kode di biocLitemengakui repo yang benar untuk paket dan kemudian panggilan install.packages()untuk melakukan instalasi yang sebenarnya. Tapi itu tidak berfungsi karena Anda gunakan biocLite. Ini bekerja karena install.packages()melakukan apa yang seharusnya dilakukan. Tidak ada perbedaan antara menggunakan biocLite()dan install.packages()selain overhead dan fakta bahwa biocLite()secara default juga memperbarui semua paket lain yang dianggap perlu. Jadi saya masih menyarankan untuk menggunakan install.packages()paket non-biokonduktor.
Joris Meys

2
@ Bli itu tidak menjamin kompatibilitas, itu memperbarui semuanya ke versi terbaru (kecuali jika Anda menempatkan suppressUpdates = TRUE) Ini sama dengan menelepon update.packages()lalu install.packages(). Karena itulah yang biocLitedilakukan di bawah tenda.
Joris Meys

0

Tambahan kecil lainnya, saat mencoba menguji versi R lama menggunakan gambar buruh pelabuhan rocker/r-ver:3.1.0

  1. reposPengaturan standarnya adalah MRANdan ini gagal mendapatkan banyak paket.
  2. Versi R itu tidak memiliki https, jadi, misalnya: install.packages("knitr", repos = "https://cran.rstudio.com")tampaknya berfungsi.

0

Saya menemukan sedikit variasi pada paket # 6 yang kedaluwarsa dari solusi hebat oleh @Richie Cotton.

Terkadang pengelola paket dapat menunjukkan celah versi R yang tidak didukungnya. Dalam hal ini, Anda memiliki setidaknya dua opsi: 1) tingkatkan versi R Anda ke yang berikutnya yang sudah didukung paket target, 2) instal versi terbaru dari yang lama yang tersedia yang akan bekerja dengan versi R Anda.

Contoh konkret: versi CRAN terbaru dari paket rattleuntuk penggalian data, 5.3.0, tidak mendukung R versi 3.4 karena memiliki pembaruan besar antara versi paket 5.2.0 (R> = 2.13.0) dan 5.3.0 (R > = 3.5).

Dalam kasus seperti ini, alternatif untuk meningkatkan instalasi R adalah solusi yang telah disebutkan. Instal paket devtoolsjika Anda tidak memilikinya (termasuk paket remotes) dan kemudian instal versi spesifik yang akan berfungsi di R. Anda saat ini. Anda dapat mencari informasi itu di halaman CRAN untuk arsip paket spesifik.

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

0

Dalam kasus saya solusinya adalah dengan hanya meningkatkan R.


-1

Seperti yang disebutkan di sini (dalam bahasa Perancis), ini bisa terjadi ketika Anda memiliki dua versi R yang terinstal di komputer Anda. Hapus instalan yang tertua, lalu coba lagi instalasi paket Anda! Ini bekerja dengan baik untukku.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.