Ric*_*ton 526

你不能拼写

要测试的第一件事是你正确拼写包的名称吗? 包名称在R中区分大小写.


你没有找到合适的存储库

接下来,您应该检查包是否可用.类型

setRepositories()
Run Code Online (Sandbox Code Playgroud)

另请参见?setRepositories.

要查看哪些存储库R将查找您的包,并选择其他一些存储库.至少,您通常希望CRAN被选中,CRAN (extras)如果您使用Windows,则选择Bioc*存储库(如果您使用的话)[根/ prote /代谢/转录]组学 生物分析.

要永久更改此项,请添加setRepositories(ind = c(1:6, 8))Rprofile.site文件类似的行.


3.包不在您选择的存储库中

使用返回所有可用的包

ap <- available.packages()
Run Code Online (Sandbox Code Playgroud)

另请参阅R的可用包的名称,?available.packages.

由于这是一个大矩阵,您可能希望使用数据查看器来检查它.或者,您可以通过针对行名称进行测试来快速检查包是否可用.

View(ap)
"foobarbaz" %in% rownames(ap)
Run Code Online (Sandbox Code Playgroud)

另外,可用包的列表可以在浏览器中可以看到CRAN,CRAN(临时演员),Bioconductor的,R-锻造,RForgegithub上.

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

Warning: unable to access index for repository
Run Code Online (Sandbox Code Playgroud)

这可能表示所选CRAN存储库当前不可用.您可以选择其他镜像,chooseCRANmirror()然后再次尝试安装.


包裹可能无法使用的原因有多种.


你不需要包裹

也许你真的不想要一个包.通常会对包和库,包和数据集之间的区别感到困惑.

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

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

data()
Run Code Online (Sandbox Code Playgroud)

5. R或Bioconductor已过期

它可能依赖于更新版本的R(或其导入/依赖的其中一个软件包).看着

ap["foobarbaz", "Depends"]
Run Code Online (Sandbox Code Playgroud)

并考虑将R安装更新到当前版本.在Windows上,这最容易通过installr包完成.

library(installr)
updateR()
Run Code Online (Sandbox Code Playgroud)

(当然,你可能需要install.packages("installr")先.)

对于Bioconductor包,您可能需要更新Bioconductor安装.

source("http://bioconductor.org/biocLite.R")
biocLite("BiocUpgrade")
Run Code Online (Sandbox Code Playgroud)

6.包裹已过期

它可能已存档(如果不再维护并且不再通过R CMD check测试).

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

library(remotes)
install_version("foobarbaz", "0.1.2")
Run Code Online (Sandbox Code Playgroud)

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

library(remotes)
install_github("cran/foobarbaz")
Run Code Online (Sandbox Code Playgroud)

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")
Run Code Online (Sandbox Code Playgroud)

在CRAN上,您可以通过查看NeedsCompilation描述中的标志来判断是否需要使用特殊工具从源代码构建包.


8.包装在github/Bitbucket/Gitorious上

它可能在Github/Bitbucket/Gitorious上有一个存储库.这些包需要remotes安装包.

library(remotes)
install_github("packageauthor/foobarbaz")
install_bitbucket("packageauthor/foobarbaz")
install_gitorious("packageauthor/foobarbaz")
Run Code Online (Sandbox Code Playgroud)

(和installr你一样,你可能需要install.packages("remotes")先.)


9.包没有源版本

虽然包的二进制版本可用,但源版本不可用.您可以通过设置关闭此检查

options(install.packages.check.source = "no")
Run Code Online (Sandbox Code Playgroud)

正如imanuelc及其详细信息部分所述的回答所述?install.packages.


10.程序包位于非标准存储库中

您的包位于非标准存储库中(例如Rbbg).假设它合理地符合CRAN标准,您仍然可以使用下载它install.packages; 你只需要指定存储库URL.

install.packages("Rbbg", repos = "http://r.findata.org")
Run Code Online (Sandbox Code Playgroud)

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

  • 我认为值得一提的是,"installr"仅适用于Windows (9认同)
  • @KonradRudolph`View`也适用于R GUI,Architect,Revo-R和Live-R.没试过emacs/ESS. (2认同)
  • "通常会对包和库之间的区别感到困惑" - 嗯,呃:R开发人员自己也对此感到困惑.如何解释函数`library`?但是,就此而言,这个答案不应该提及/解释`.libPaths`吗?未安装或不可写的库路径似乎是安装软件包时最常见的问题之一. (2认同)

Dmi*_*try 89

在最新的R(3.2.3)中有一个错误,有时会阻止它找到正确的包.解决方法是手动设置存储库:

install.packages("lubridate", dependencies=TRUE, repos='http://cran.rstudio.com/')
Run Code Online (Sandbox Code Playgroud)

其他问题找到解决方案

  • 怀疑是这样的.然而,这似乎是r-studio中的一个错误.我刚刚测试过,如果我只是从终端启动R,我就不需要设置存储库 - 只能从r-studio中启动. (4认同)
  • 这也有助于R 3.2.2,感谢@Dmitry (2认同)
  • 这在 Windows 上的 R 4.2.1 中对我有用。也许我的工作网络以某种方式阻止了这些类型的请求 - 我必须使用 Python 和 PIP 做类似的事情。 (2认同)

小智 23

某些版本的R和版似乎有问题libcurl.我遇到了同样的问题Mac (R version 3.2.2),Ubuntu (R version 3.0.2)并且在两个实例中都只是通过在install.packages命令之前运行它来解决它

options(download.file.method = "wget")
Run Code Online (Sandbox Code Playgroud)

该解决方案是由朋友提出的,但是,我无法在任何论坛中找到它,因此将答案提交给其他人.


Pal*_*diN 17

这个解决方案可能会破坏R,但这是一个最简单的解决方案,可以在99%的时间内工作

你需要做的只是:

install.packages('package-name',repos =' http://cran.us.r-project.org ')

正如作者在这里提到的那样


Jen*_*Lim 14

  1. 访问https://cran.r-project.org/src/contrib/Archive/
  2. 找到要安装的软件包 Ctrl+F
  3. 点击包名
  4. 确定要安装的版本
  5. 打开 RStudio
  6. 输入“ 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)来安装KoNLPpackage.json 。

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)
Run Code Online (Sandbox Code Playgroud)


dar*_*sco 13

11. R(或其他依赖项)已过期,您不想更新它.

警告这不是最佳做法.

  • 通常说存在对R版本的依赖是有原因的,检查这种更改可能会破坏什么是明智的。 (5认同)

bli*_*bli 9

我遇到的一件事是我的linux发行版提供的R版本(Ubuntu 14.04提供的R版本3.0.2)对于CRAN上可用的最新版软件包来说太旧了(在我的例子中,plyr版本为1.8.3)截至今日).解决方案是使用我的发行版的打包系统,而不是尝试从R安装(apt-get install r-cran-plyr得到我的1.8.1版plyr).也许我本可以尝试更新R使用updateR(),但我担心这样做会干扰我的发行版的包管理器.


Tom*_*art 8

这节省了我很多时间调试错误.在许多情况下,镜子已经过时了.此函数可以使用以下命令安装多个包及其依赖项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"))
Run Code Online (Sandbox Code Playgroud)


小智 6

当我收到相同的警告时,这就是我最终可以在 R-3.4.1 中安装 psych 包的方法

1:谷歌搜索那个包。

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

3:在R中选择“Package Archive File (.zip;.tar.gz)”选项来安装包

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

您可能会收到警告:依赖项 'xyz' 不适用于该软件包,然后首先从存储库安装它们,然后执行步骤 3-4。


Dam*_*jan 5

我在repos=NULL从源代码安装 R 包时犯了忘记放置的错误。在这种情况下,错误消息有点误导: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)了在这个场合对我有用的方法。

希望这可以帮助某人。


归档时间:

查看次数:

573408 次

最近记录:

5 年,10 月 前