我试图安装一个包,使用
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)"
最佳答案
1. 不能拼写
首先要测试的是您是否正确拼写了包裹的名称? R 中的包名称区分大小写。
2. 您没有查看正确的存储库
接下来,您应该检查包是否可用。类型
setRepositories()
另见 ?setRepositories .
要查看 R 将在哪些存储库中查找您的包,并可选择选择一些其他存储库。至少,您通常需要
CRAN
被选中,和 CRAN (extras)
如果您使用 Windows,并且 Bioc*
如果您进行任何 [gen/prote/metabol/transcript] 组学生物学分析,请访问存储库。要永久更改此设置,请添加类似
setRepositories(ind = c(1:6, 8))
的行给您的 Rprofile.site
文件。3. 软件包不在您选择的存储库中
使用返回所有可用的包
ap <- available.packages()
另见 Names of R's available packages , ?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.你不想要一个包裹
也许你真的不想要一个包裹。人们常常对 a package and a library 之间的区别感到困惑。 ,或包和数据集。
A package is a standardized collection of material extending R, e.g. providing code, data, or documentation. A library is a place (directory) where R knows to find packages it can use
要查看可用数据集,请键入
data()
5. R 或 Bioconductor 已过期
它可能依赖于更新版本的 R(或它导入/依赖的包之一)。看着
ap["foobarbaz", "Depends"]
并考虑将 R 安装更新到当前版本。在 Windows 上,这最容易通过
installr
完成。包裹。library(installr)
updateR()
(当然,您可能需要先
install.packages("installr")
。)对于 Bioconductor 软件包,您可能需要更新您的 Bioconductor 安装。
source("http://bioconductor.org/biocLite.R")
biocLite("BiocUpgrade")
6. 包过期
可能是 archived (如果它不再被维护并且不再通过
R CMD check
测试)。在这种情况下,您可以使用
install_version()
加载旧版本的包。library(remotes)
install_version("foobarbaz", "0.1.2")
另一种方法是从 github CRAN 镜像安装。
library(remotes)
install_github("cran/foobarbaz")
7.没有Windows/OS X/Linux二进制文件
它可能没有 Windows binary由于需要 CRAN 没有的附加软件。此外,某些软件包只能通过某些或所有平台的源获得。在这种情况下,
CRAN (extras)
中可能有一个版本存储库(参见上面的 setRepositories
)。如果软件包需要编译代码(例如 C、C++、FORTRAN),则在 Windows 上安装 Rtools或在 OS X 上安装 developer tools随附 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
一样,您可能需要先 install.packages("remotes")
。)9. 没有源码版本的包
尽管您的软件包的二进制版本可用,但源版本不可用。您可以通过设置关闭此检查
options(install.packages.check.source = "no")
如 this SO answer by imanuelc 中所述和
?install.packages
的详细信息部分.10. 包在非标准仓库
您的包位于非标准存储库中(例如
Rbbg
)。假设它合理地符合CRAN标准,您仍然可以使用install.packages
下载它。 ;您只需要指定存储库 URL。install.packages("Rbbg", repos = "http://r.findata.org")
RHIPE
另一方面,它不在类似 CRAN 的存储库中,而是拥有自己的 installation instructions .
关于r - 我应该如何处理 "package ' xxx' is not available (for R version x.y.z)”警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25721884/