我应该如何处理“package xxx”不可用(对于R版本xyz)“警告?

我试图安装一个包,使用

install.packages("foobarbaz") 

但收到警告

 Warning message: package 'foobarbaz' is not available (for R version xyz) 

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

另请参阅这些问题提到这个问题的具体实例:

我的软件包不适用于R 2.15.2
软件包'Rbbg'不可用(R版本2.15.2)
软件包不可用(R版本2.15.2)
软件包doMC不适用于install.packages中的R 3.0.0版警告
依赖'Rglpk'不可用于包'fPortfolio'
当我们的R版本不可用时,该怎么办?
R的bigvis软件包不适用于R 3.0.1版吗?
软件包'syncwave'/'mvcwt'不可用(对于R版本3.0.2)
包'钻石'是不可用的(R版本3.0.0)
R的plyr软件包不适用于R 3.0.2版吗?
https://stackoverflow.com/questions/21580661/installing-predictabel-package-on-r-2-15-2
打包bigmemory不安装在R 64 3.0.2上
软件包“makeR”不可用(对于版本3.0.2)
软件包'RTN'不可用(对于R版本3.0.1)
麻烦安装geoR软件包
包'twitterR'不可用(R版本3.1.0)
如何安装'Rcpp,包? 我得到了“包不可用”
包“数据集”不可用(对于R版本3.1.1)
“package'rhipe'不可用(对于R版本3.1.2)”
https://stackoverflow.com/questions/31439092/package-dplyr-is-not-available-for-r-version-3-1-1

你不能拼写

首先要testing的是你拼写正确的包名称? 软件包名称在R中区分大小写。


2.你没有看到正确的存储库

接下来,你应该检查包是否可用。 types

 setRepositories() 

另请参阅?setRepositories 。

要查看哪些存储库R将查找您的包,并可以select一些额外的。 至less,您通常会selectCRAN (extras)如果您使用Windows,则使用CRAN (extras)如果您使用的是Bioc*存储库 [根/ prote /代谢/转录]组学 生物分析。

要永久地改变这个,在你的Rprofile.site文件中添加一行像setRepositories(ind = c(1:6, 8))


3.软件包不在您select的存储库中

使用返回所有可用的包

 ap <- available.packages() 

另请参阅R的可用软件包的名称 ?available.packages 。

由于这是一个很大的matrix,所以您可能希望使用数据查看器来检查它。 或者,您可以通过对照行名称进行testing来快速检查包是否可用。

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

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

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

 Warning: unable to access index for repository 

这可能表示选定的CRAN存储库当前不可用。 您可以使用chooseCRANmirror()select另一个镜像, chooseCRANmirror()再次尝试安装。


有几个原因可能导致一个软件包无法使用。


4.你不想要一个包

也许你不是真的想要一个包。 一个软件包和一个库 ,一个软件包和一个数据集之间的区别是很常见的。

软件包是一个标准化的扩展R的材料集合,例如提供代码,数据或文档。 一个库是一个地方(目录),R知道要find它可以使用的包

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

 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.包裹已过期

它可能已被存档 (如果它不再被维护,并且不再通过R CMD checktesting)。

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

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

另一种方法是从github安装CRAN镜像。

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

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

它可能没有Windows二进制文件,因为需要CRAN没有的其他软件。 另外,一些软件包只能通过某些或所有平台的源代码才可用。 在这种情况下, CRAN (extras)存储库中可能有版本(请参阅上面的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标志,您可以知道是否需要特殊工具从源代码构build软件包。


8.这个软件包在github / Bitbucket / Gitorious上

它可能在Github / Bitbucket / Gitorious上有一个仓库。 这些软件包需要安装devtools软件包。

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

(和installr ,你可能首先需要install.packages("devtools") 。)


9.这个软件包没有源代码版本

虽然你的软件包的二进制版本是可用的,但是源版本不是。 您可以通过设置closures此检查

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

正如本文中由imanuelc回答以及?install.packages的Details部分所述。


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

你的软件包是在一个非标准的仓库(例如Rbbg )。 假设它符合CRAN标准,您仍然可以使用install.packages下载; 您只需指定存储库URL。

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

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

在最新的R(3.2.3)中有一个bug,阻止它find正确的包。 解决方法是手动设置存储库:

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

在其他问题find解决scheme

Rlibcurl某些版本似乎有问题。 我在Mac (R version 3.2.2)Ubuntu (R version 3.0.2)上遇到了同样的问题,在两种情况下,都是通过在install.packages命令

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

该解决scheme是由朋友提出的,但是,我没有在任何论坛上find它,因此将这个答案提交给其他人。

有一件事情发生在我的linux发行版(由Ubuntu 14.04提供的R版本3.0.2)提供的R版本对于CRAN上可用的最新版本(在我的例子中是plyr版本1.8)来说太旧了。 3截至今天)。 解决的办法是使用我的发行版的包装系统,而不是试图从R安装( apt-get install r-cran-plyr了我的版本1.8.1 plyr )。 也许我可以尝试使用updateR()更新R,但恐怕这样做会干扰我的发行包pipe理器。

这节省了我很多时间debugging什么是错的。 在许多情况下,只是镜像过时。 这个函数可以使用https://cran.rstudio.com/来安装多个包及其相关的包:

 packages <- function(pkg){ new.pkg <- pkg[!(pkg %in% installed.packages()[, "Package"])] if (length(new.pkg)) install.packages(new.pkg, dependencies = TRUE, repos='https://cran.rstudio.com/') sapply(pkg, require, character.only = TRUE) } packages(c("foo", "bar", "baz")) 

R(或其他依赖)已经过时,你不想更新它。

警告这不是最好的做法。

  • 下载软件包源代码。
  • 导航到DESCRIPTION文件。
  • 用你的文本编辑器删除违规行

     Depends: R (>= 3.1.1) 
  • 从本地安装(即从DESCRIPTION的父目录),例如

     install.packages("foo", type="source", repos=NULL) 

我通过仔细按照安装R的说明在Ubuntu上修复了这个错误。 这包括:

  1. 添加deb http://cran.utstat.utoronto.ca/bin/linux/ubuntu trusty/到我的/etc/apt/sources.list文件
  2. 运行sudo apt-get update
  3. 运行sudo apt-get install r-base-dev

对于第一步,如果您愿意,可以select任何CRAN下载镜像来代替我的多伦多大学。

当我使用bioconductor作为源,然后调用biocLite时,它几乎总是适用于我。 例:

 source("https://bioconductor.org/biocLite.R") biocLite("preprocessCore") 

我有同样的问题(在Linux上)可以解决更改代理设置。 如果您在代理服务器后面,请在R中使用Sys.getenv("http_proxy")检查configuration。在我的~/.Renviron我有以下几行(来自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执行相同的操作。

当我读“package xxx不适用于r version-xyz”时,并不是第一个想到的…

HTH

另一个小的补充,同时尝试使用docker image rocker/r-ver:3.1.0testing旧的R版本

  1. 默认的repos设置是MRAN ,这不能获得很多包。
  2. R的版本没有https ,所以,例如: install.packages("knitr", repos = "https://cran.rstudio.com")似乎工作。

正如这里所提到的(用法语),当您的计算机上安装了两个R版本时,可能会发生这种情况。 卸载最老的一个,然后再次尝试安装软件包! 它为我工作得很好。

当我得到相同的警告时,我终于可以在R-3.4.1中安装心理包

1:谷歌search包。

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

3:为R中的安装包select“Package Archive File(.zip; .tar.gz)”选项

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

您可能会收到警告:软件包中不存在依赖项“xyz”,请先从存储库安装这些文件,然后执行步骤3-4。

我在安装包“情感”时遇到了同样的问题。 开始search并尝试了许多命令。 最后使用下面的命令安装软件包:

 install_url("http://cran.r-project.org/src/contrib/Archive/sentiment/sentiment_0.2.tar.gz")