我试着安装一个包,使用

install.packages("foobarbaz")

却收到了警告

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

为什么R认为这个包是不可用的?

参见这些问题的具体例子:

My package doesn't work for R 2.15.2 package 'Rbbg' is not available (for R version 2.15.2) package is not available (for R version 2.15.2) package doMC NOT available for R version 3.0.0 warning in install.packages Dependency ‘Rglpk’ is not available for package ‘fPortfolio’ What to do when a package is not available for our R version? Is the bigvis package for R not available for R version 3.0.1? package ‘syncwave’/‘mvcwt’ is not available (for R version 3.0.2) package ‘diamonds’ is not available (for R version 3.0.0) Is the plyr package for R not available for R version 3.0.2? Package bigmemory not installing on R 64 3.0.2 package "makeR" is not available (for version 3.0.2) package ‘RTN’ is not available (for R version 3.0.1) Trouble Installing geoR package package ‘twitterR’ is not available (for R version 3.1.0) How to install 'Rcpp, package? I got "package is not available" package ‘dataset’ is not available (for R version 3.1.1) "package ‘rhipe’ is not available (for R version 3.1.2)"


当前回答

另一个原因+解决方案

当我试图在我公司的HPC上的RStudio中安装pkgdown时,我遇到了这个错误(“包XXX对于R版本X.X.X不可用”)。

事实证明,他们在HPC上拥有的CRAN快照是2018年1月(几乎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。包(“包名”,repos =“一个比你公司的旧的CRAN快照更新的CRAN”)。

其他回答

当我在R-3.4.1中得到相同的警告时,这就是我最终可以为安装psych软件包所做的事情

1:谷歌那个包裹。

2:手动下载,扩展名为tar.gz

3:选择“包归档文件(.zip;.tar.gz)”选项安装R中的包

4:本地浏览到下载的地方,点击安装

你可能会得到一个警告:软件包的依赖项'xyz'不可用,然后首先从存储库安装这些依赖项,然后执行步骤3-4 .

我也有同样的问题(在Linux上),可以通过更改代理设置来解决。 如果您在代理服务器后面,请使用R. getenv("http_proxy")检查配置。 在我的~/。我有以下几行(来自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版本-x-y-z”时,我的第一个想法不是……

HTH

另一个小的添加,当尝试使用docker映像摇杆/ R -ver:3.1.0测试旧R版本时

默认的回购设置是MRAN,这无法获得许多包。 那个版本的R没有https,所以,举个例子: 安装。Packages ("knitr", repos = "https://cran.rstudio.com")似乎可以工作。

有些版本的R和libcurl似乎有问题。我在Mac (R版本3.2.2)和Ubuntu (R版本3.0.2)上也遇到过同样的问题,在这两个例子中,在安装之前简单地运行这个程序就解决了。包的命令

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

解决方案是由一个朋友建议的,然而,我在任何论坛上都找不到它,因此提交了这个答案给其他人。

另一个原因+解决方案

当我试图在我公司的HPC上的RStudio中安装pkgdown时,我遇到了这个错误(“包XXX对于R版本X.X.X不可用”)。

事实证明,他们在HPC上拥有的CRAN快照是2018年1月(几乎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。包(“包名”,repos =“一个比你公司的旧的CRAN快照更新的CRAN”)。