我尝试安装一个软件包,使用
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)”
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')
正如作者所说