我应该如何处理“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 check
testing)。
在这种情况下,您可以使用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
R
和libcurl
某些版本似乎有问题。 我在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上修复了这个错误。 这包括:
- 添加
deb http://cran.utstat.utoronto.ca/bin/linux/ubuntu trusty/
到我的/etc/apt/sources.list文件 - 运行
sudo apt-get update
- 运行
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.0
testing旧的R版本
- 默认的
repos
设置是MRAN
,这不能获得很多包。 - 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")