1. 你不会拼写
要测试的第一件事是您是否正确拼写了包的名称?包名在R中区分大小写。
2. 你没有找对仓库
接下来,您应该检查该包是否可用。类型
setRepositories()
参见? setrepository。
查看R将在哪些存储库中查找您的包,并可选地选择一些其他存储库。至少,您通常会希望选择CRAN,如果使用Windows则选择CRAN(附加),如果进行任何生物学分析则选择Bioc*存储库。
要永久地改变这一点,可以在Rprofile中添加setrepos(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存储库当前不可用。您可以使用chooseCRANmirror()选择不同的镜像,并再次尝试安装。
有几个原因可能导致包不可用。
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镜像安装。
library(remotes)
install_github("cran/foobarbaz")
7. 没有Windows/OS X/Linux二进制文件
它可能没有Windows二进制文件,因为需要CRAN没有的附加软件。此外,有些包只能通过某些或所有平台的源代码获得。在这种情况下,CRAN (extras)存储库中可能有一个版本(参见上面的setrepository)。
如果包需要编译代码(例如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和?install.packages的详细信息部分所述。
10. 包位于非标准存储库中
你的包在一个非标准的存储库中(例如Rbbg)。假设它与CRAN标准合理兼容,您仍然可以使用install.packages下载它;你只需要指定存储库URL。
install.packages("Rbbg", repos = "http://r.findata.org")
另一方面,RHIPE并不在类似于crane的存储库中,它有自己的安装说明。