提问人:Richie Cotton 提问时间:9/8/2014 最后编辑:zx8754Richie Cotton 更新时间:10/5/2023 访问量:973583
我应该如何处理“包'xxx'不可用(适用于R版本x.y.z)”警告?
How should I deal with "package 'xxx' is not available (for R version x.y.z)" warning?
问:
我尝试安装一个软件包,使用
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)包“Rbbg”不可用(适用于 R 版本 2.15.2)Package is not available (for R version 2.15.2
)
包 doMC 不适用于 R 版本 3.0.0 install.packages
中的警告 依赖项“Rglpk”不适用于包“fPortfolio”
当一个包不适用于我们的 R 版本时该怎么办?
的 bigvis 包是否不适用于 R 版本 3.0.1?
包“syncwave”/“mvcwt”不可用(适用于 R 版本 3.0.2) 包“diamonds”不可用(适用于 R 版本 3.0.0)
的 plyr 包是否不适用于 R 版本 3.0.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)“包”rhipe“不可用(适用于 R 版本 3.1.2)”
答:
1.你不会拼写
首先要测试的是你是否正确拼写了包的名称?包名称在 R 中区分大小写。
2. 您没有查看正确的存储库
接下来,您应该检查该软件包是否可用。类型
setRepositories()
另请参见 ?setRepositories。
查看 R 将在哪些存储库中查找包,并选择一些其他存储库。至少,如果您使用 Windows,您通常希望被选中,如果您进行任何生物分析,则希望被选中。CRAN
CRAN (extras)
Bioc*
要永久更改此设置,请在 Rprofile.site
文件中添加一行 like。setRepositories(ind = c(1:6, 8))
3. 软件包不在您选择的存储库中
使用
ap <- available.packages()
另请参阅 R 的可用包的名称 ?available.packages。
由于这是一个大型矩阵,因此您可能希望使用数据查看器来检查它。或者,您可以通过针对行名进行测试来快速检查包是否可用。
View(ap)
"foobarbaz" %in% rownames(ap)
或者,可以在浏览器中查看 CRAN、CRAN(附加功能)、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 上,这最容易通过 installr
软件包完成。
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)
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
install.packages("remotes")
9. 软件包没有源版本
尽管包的二进制版本可用,但源版本不可用。您可以通过设置
options(install.packages.check.source = "no")
如 imanuelc 的 SO 答案和 ?install.packages
的 Details 部分所述。
10. 软件包位于非标准存储库中
您的软件包位于非标准存储库(例如 Rbbg
)中。假设它合理地符合 CRAN 标准,您仍然可以使用 ;您只需指定存储库 URL。install.packages
install.packages("Rbbg", repos = "http://r.findata.org")
另一方面,RHIPE
不在类似 CRAN 的存储库中,并且有自己的安装说明。
11. R(或其他依赖项)已过期,您不想更新它。
警告:这并不完全是最佳实践。
- 下载包源。
- 导航到该文件。
DESCRIPTION
使用文本编辑器删除有问题的行,例如
Depends: R (>= 3.1.1)
从本地安装(即从 的父目录安装),例如
DESCRIPTION
install.packages("foo", type="source", repos=NULL)
评论
install.packages("local/pkg",repos=NULL)
就够了
发生在我身上的一件事是,我的 linux 发行版提供的 R 版本(Ubuntu 14.04 提供的 R 版本 3.0.2)对于 CRAN 上可用的最新版本的软件包来说太旧了(就我而言,截至今天的 1.8.3 版)。解决方案是使用我的发行版的打包系统,而不是尝试从 R 安装(为我提供了 1.8.1 版)。也许我可以尝试使用 更新R,但我担心这样做会干扰我的发行版的包管理器。plyr
apt-get install r-cran-plyr
plyr
updateR()
编辑(2020 年 4 月 8 日):在 CRAN 中更新软件包后,我最近遇到了一个问题,据报道,软件包 (XML) 不适用于我的 R 版本(3.6.3,Debian stretch 上最新支持)。这是非常出乎意料的,因为我之前已经成功安装了它(在相同版本的 R 和相同的操作系统上)。
出于某种原因,该软件包仍然存在,但只查看更新(且不兼容)的版本。解决方案是找到兼容版本的 URL 并强制使用它,如下所示:install.packages
install.packages
install.packages("https://cran.r-project.org/src/contrib/Archive/XML/XML_3.99-0.3.tar.gz", repos=NULL, type="source", ask=FALSE)
评论
mvtnorm
ks
apt-get install r-cran-mvtnorm
当我使用生物导体作为源然后调用biocLite时,它几乎总是对我有用。例:
source("https://bioconductor.org/biocLite.R")
biocLite("preprocessCore")
评论
biocLite
dplyr
biocLite
biocLite
install.packages()
biocLite
install.packages()
biocLite()
install.packages()
biocLite()
install.packages()
suppressUpdates = TRUE
update.packages()
install.packages()
biocLite
这为我节省了大量时间来调试问题所在。在许多情况下,只是过时的镜子。此函数可以使用以下命令安装多个包及其依赖项: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 3.2.3(2016 年新增)中,存在一个错误,有时无法找到正确的包。解决方法是手动设置存储库:
install.packages("lubridate", dependencies=TRUE, repos='http://cran.rstudio.com/')
在其他问题中找到解决方案
评论
rbokeh
和的某些版本似乎存在问题。我遇到了同样的问题,在这两种情况下,只需在命令之前运行它即可解决R
libcurl
Mac (R version 3.2.2)
Ubuntu (R version 3.0.2)
install.packages
options(download.file.method = "wget")
该解决方案是由一位朋友提出的,但是,我无法在任何论坛中找到它,因此为其他人提交了此答案。
我通过仔细按照安装 R 的说明在 Ubuntu 上修复了此错误。这包括:
- 添加到我的 /etc/apt/sources.list 文件
deb http://cran.utstat.utoronto.ca/bin/linux/ubuntu trusty/
- 运行
sudo apt-get update
- 运行
sudo apt-get install r-base-dev
对于第 1 步,如果您愿意,您可以选择任何 CRAN 下载镜像来代替我的多伦多大学下载镜像。
评论
3.02
3.4
另一个小的补充,同时尝试使用 docker 映像测试旧的 R 版本rocker/r-ver:3.1.0
- 默认设置是,这无法获得许多包。
repos
MRAN
- 该版本的 R 没有 ,因此,例如:似乎有效。
https
install.packages("knitr", repos = "https://cran.rstudio.com")
如此处所述(法语),当您的计算机上安装了两个版本的 R 时,可能会发生这种情况。卸载最旧的,然后再次尝试安装软件包!它对我来说效果很好。
我遇到了同样的问题(在 Linux 上),可以通过更改代理设置来解决。
如果位于代理服务器后面,请在 R 中使用检查配置。
在我的中,我有以下行(来自 https://support.rstudio.com/hc/en-us/articles/200488488-Configuring-R-to-Use-an-HTTP-or-HTTPS-Proxy)导致问题:Sys.getenv("http_proxy")
~/.Renviron
http_proxy=https://proxy.dom.com:port
http_proxy_user=user:passwd
将其更改为
http_proxy="http://user:[email protected]:port"
解决了问题。您可以对 执行相同的操作。https
当我读到“软件包 xxx 不适用于 r 版本-x-y-z”时,这不是第一个想法......
HTH型
当我收到相同的警告时,这就是我最终可以在 R-3.4.1 中安装 psych 包所能做的
1:在谷歌上搜索该包裹。
2:手动下载具有tar.gz扩展名
3:选择选项“包存档文件(.zip;)。tar.gz)“,用于在 R 中安装包
4:在本地浏览到下载位置,点击安装
您可能会收到警告:依赖项“xyz”不适用于软件包,然后首先从存储库安装这些依赖项,然后执行步骤 3-4 .
我犯了一个错误,忘记在从源代码安装 R 包时放置。在这种情况下,错误消息略有误导性:repos=NULL
package 'foobarbaz' is not available (for R version x.y.z)
问题不在于 R 的版本,而在于参数。在这种情况下,我做了对我有用的事情。repos
install.packages('path/to/source/code/of/foobarbaz', type='source', repos=NULL)
希望这对某人有所帮助。
评论
type="source"
此解决方案可能会破坏 R,但这是一个最简单的解决方案,可在 99% 的时间内工作。
您需要做的就是:
install.packages('package-name',repos='http://cran.us.r-project.org')
正如作者在这里提到的
另一个原因+解决方案
尝试在公司的 HPC 上的 RStudio 中安装 pkgdown 时,我遇到了此错误(“包 XXX 不适用于 R 版本 X.X.X”)。
事实证明,他们在 HPC 上的 CRAN 快照是 2018 年 1 月(将近 2 年)的快照,实际上当时 pkgdown 并不存在。这本来是为了控制外行用户的软件包来源,但作为开发人员,在大多数情况下,您可以通过以下方式更改它:
## checking the specific repos you currently have
getOption("repos")
## updating your CRAN snapshot to a newer date
r <- getOption("repos")
r["newCRAN"] <- "https://cran.microsoft.com/snapshot/*2019-11-07*/"
options(repos = r)
## add newCRAN to repos you can use
setRepositories()
如果您知道自己在做什么,并且可能需要多个包,而这些包可能在系统的 CRAN 中不可用,则可以在项目中进行设置。.Rprofile
如果只是一个包,也许只使用 .install.packages("package name", repos = "a newer CRAN than your company's archaic CRAN snapshot")
- 访问 https://cran.r-project.org/src/contrib/Archive/。
- 找到要安装的软件包
Ctrl
+F
- 单击软件包名称
- 确定要安装的版本
- 打开 RStudio
- 键入 ”
install.packages("https://cran.r-project.org/src/contrib/Archive/[NAME OF PACKAGE]/[VERSION NUMBER].tar.gz", repos = NULL, type="source")
"
在某些情况下,您需要提前安装多个软件包才能使用要使用的软件包。
例如,我需要安装 7 个包(、、、)来安装包。Sejong
hash
rJava
tau
RSQLite
devtools
stringr
KoNLP
install.packages('Sejong')
install.packages('hash')
install.packages('rJava')
install.packages('tau')
install.packages('RSQLite')
install.packages('devtools')
install.packages('stringr')
library(Sejong)
library(hash)
library(rJava)
library(tau)
library(RSQLite)
library(devtools)
library(stringr)
install.packages("https://cran.r-project.org/src/contrib/Archive/KoNLP/KoNLP_0.80.2.tar.gz", repos = NULL, type="source")
library(KoNLP)
我发现 #6 包装的细微变化与 @Richie Cotton 的出色解决方案过时了。
有时,包维护者可能会显示它不支持的 R 版本差距。在这种情况下,你至少有两个选择:1) 将 R 版本升级到目标包已支持的下一个版本,2) 从可用的旧版本安装适用于 R 版本的最新版本。
一个具体的例子:用于数据挖掘的包的最新 CRAN 版本 5.3.0 不支持 R 版本 3.4,因为它在包版本 5.2.0 (R >= 2.13.0) 和 5.3.0 (R >=3.5) 之间进行了重大更新。rattle
在这种情况下,升级 R 安装的替代方法是前面提到的解决方案。如果没有包,请安装它(它包括包),然后安装将在当前 R 中工作的特定版本。您可以在 CRAN 页面上查找特定包存档的该信息。devtools
remotes
library("devtools")
install_version("rattle", version = "5.2.0", repos = "http://cran.us.r-project.org")
就我而言,解决方案是简单地升级 R。
使用帮助了我
首先,尝试安装必要的库:library(remotes)
install_version("foobarbaz", "0.1.2")
然后查看它需要哪些依赖项并以错误结束,并手动安装它们
我以我的语言版本的发布日期为指导,并据此安装了必要版本的库install_version()
上一个:从向量中删除 NA 值
下一个:多行注释解决方法?
评论