提问者:小点点

“包‘XXX’不可用(针对R版x.y.z)”警告应该如何处理?


我尝试安装一个软件包,使用

install.packages("foobarbaz")

但是收到了警告

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

为什么R不认为该套餐可用?

另请参见与此问题的具体实例相关的这些问题:

我的包不适用于R 2.15.2
包“Rbbg”不可用(适用于R版本2.15.2)
包不可用(适用于R版本2.15.2)
包doMC不适用于R版本3.0.0安装中的警告。包< br >依赖项“Rglpk”不适用于包“fPortfolio”< br >当包不适用于R版本时该怎么办?< br > R的bigvis包是否不适用于R版本3.0.1?< br >程序包“sync wave”/“mvcwt”不可用(适用于R版本3.0.2)
程序包“diamonds”不可用(适用于R版本3.0.0)
适用于R的plyr程序包是否不适用于R版本3.0.2?< br >软件包bigmemory未安装在R 64 3.0.2上< br >软件包“makeR”不可用(对于版本3.0.2)
软件包“RTN”不可用(对于R版本3.0.1)
安装geoR软件包时出现问题< br >软件包“twitterR”不可用(对于R版本3.1.0)
如何安装“Rcpp,Package?我得到“包不可用”< br >包“数据集”不可用(对于R版本3.1.1)
“包“rhipe”不可用(对于R版本3.1.2)”


共3个答案

匿名用户

1.你不会拼写

首先要测试的是你是否正确拼写了包的名称?包名称在R中区分大小写。

2.您没有查看正确的存储库

接下来,您应该查看该包是否可用。类型

setRepositories()

另请参见?setRepository。

若要查看 R 将在哪些存储库中查找你的包,并选择性地选择一些其他存储库。至少,您通常希望选择 CRAN,如果您使用 Windows,则选择 RAN(额外),如果您进行任何生物分析,则选择 Bioc* 存储库。

要永久更改此值,请在Rprofile.site文件中添加一行,如setRepository(ind=c(1:6,8))

3.包不在您选择的存储库中

使用返回所有可用的包

ap <- available.packages()

另请参见R可用包的名称,?available.packages.

由于这是一个大矩阵,您可能希望使用数据查看器来检查它。或者,您可以通过测试行名称来快速检查包是否可用。

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

或者,可以在CRAN、CRAN (extras)、Bioconductor、R-forge、RForge和GitHub的浏览器中查看可用软件包列表。

与CRAN镜像交互时可能会收到的另一条警告消息是:

Warning: unable to access index for repository

这可能表明所选的CRAN存储库当前不可用。您可以使用chooseCRAN

有几个原因可能无法获得一个包。

4.你不想要包裹

也许你并不真的想要一个包裹。混淆包和库或者包和数据集之间的区别是很常见的。

包是扩展 R 的标准化材料集合,例如提供代码、数据或文档。库是 R 知道查找可以使用的包的地方(目录)

要查看可用数据集,请键入

data()

5.r或Bioconductor过期

它可能依赖于更新版本的R(或它导入/依赖的包之一)。看看

ap["foobarbaz", "Depends"]

并考虑将 R 安装更新到当前版本。在 Windows 上,这最容易通过安装程序包完成。

library(installr)
updateR()

(当然,您可能需要先install.packages(“installr”)。)

同样,对于Bioconductor软件包,您可能需要更新您的Bioconductor安装。

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

6. 包装已过期

它可能已被存档(如果它不再维护并且不再通过R CMD检查测试)。

在这种情况下,您可以使用 install_version() 加载旧版本的包

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

另一种方法是从GitHub CRAN mirror安装。

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

7. 没有 Windows/OS X/Linux 二进制文件

由于需要CRAN没有的额外软件,它可能没有Windows二进制文件。此外,有些软件包只能通过某些或所有平台的源代码获得。在这种情况下,在< code>CRAN (extras)存储库中可能有一个版本(参见上面的< code>setRepositories)。

如果软件包需要编译代码(例如C、C、FORTRAN),则在Windows上安装Rtools或在OS X上安装XCode随附的开发人员工具,并通过以下方式安装软件包的源代码版本:

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

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

在CRAN上,您可以通过查看描述中的NeedsCompilation标志来判断是否需要特殊工具从源代码构建包。

8.包在GitHub/Bitbucket/Gitorious上

它可能在GitHub/Bitbucket/Gitorious上有一个存储库。这些软件包需要安装remotes软件包。

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

(与installr一样,您可能需要先安装.packages(“remotes”)。)

9. 没有软件包的源版本

尽管您的包的二进制版本可用,但源版本不可用。您可以通过设置关闭此检查

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

如 imanuelc 的这个 SO 答案和 ?install.packages 的详细信息部分所述。

10.该包位于非标准存储库中

您的包位于非标准存储库中(例如Rbg)。假设它符合CRAN标准,您仍然可以使用install下载它。程序包;您只需指定存储库URL。

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

另一方面,RHIPE不在类似CRAN的存储库中,并且有自己的安装说明。

匿名用户

在R 3 . 2 . 3(2016年新增)中有一个bug,有时会阻止它找到正确的包。解决方法是手动设置存储库:

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

在其他问题中找到解决方案

匿名用户

这个解决方案可能会破坏R,但这里有一个最简单的解决方案,可以在99%的时间内工作。

你需要做的只是:

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

正如作者所说