无法使用 install.packages 安装 R-forge 包

Posted

技术标签:

【中文标题】无法使用 install.packages 安装 R-forge 包【英文标题】:Cannot install R-forge package using install.packages 【发布时间】:2012-06-21 17:42:56 【问题描述】:

This, question, is, asked, over, and, over, and, over, 在R-sig-finance 邮件列表中,但我认为在*** 上没有被问到。

是这样的:

我在哪里可以获得 R-forge 上托管的最新版本的包 XYZ?我尝试使用install.packages 安装它,但结果是这样的:

> install.packages("XYZ",repos="http://r-forge.r-project.org")
Warning message: package ‘XYZ’ is not available (for R version 2.15.0)

查看 XYZ 的 R-forge 网站,我发现该包无法构建。 因此,没有下载源的链接。有没有其他方法 获取源代码?一旦我得到源代码,我怎么能把它变成一个 我可以使用library("XYZ") 加载的包?

【问题讨论】:

干得好——我们不妨把它变成一个支持维基。 'r-forge' 标签,也许吧? @DirkEddelbuettel 去吧。我认为我没有足够的代表来做那种事情。 我认为您只是编辑并因此创建了一个新标签。通过在越来越多的问题上使用它,它将变得合法。或者我希望如此。 哈!我刚刚达到了 1500 个代表,当我达到时,我获得了“创建标签”特权 谢谢你,@GSee。所以。更容易搜索,我知道它一定被问了无数次。 【参考方案1】:

或者,您可以从 GitHub 安装特定的包,如果它在 GitHub 上有一个 repo。

我跑了install.packages('ggfortify'),得到了

警告消息:“包‘ggfortify’不可用(对于 R 版本 3.3.2)”

ggfortify 是同一包的 GitHub 存储库。

devtools 库允许您使用install_github('username/repo') 直接从 GitHub 安装包。

library(devtools)
install_github('sinhrks/ggfortify')

【讨论】:

【参考方案2】:

如果(且仅当)您拥有适合您的操作系统的工具链,那么这可能会成功:

# First download source file to your working directory
# As an example use browser to download pkg:partykit from: 
#  http://download.r-forge.r-project.org/src/contrib/partykit_1.1-2.tar.gz
# Move to working directory
# Or in the case of returnanalytics (which is a bundle of packages):
# http://r-forge.r-project.org/R/?group_id=579 and download the tar.gz (source)
# Then in R:

install.packages( "partykit_1.1-2.tar.gz", repo=NULL, type="source")
# for the first of the ReturnAnalytics packages:
install.packages( "Dowd_0.11.tar.gz", repo=NULL, type="source")

这些方向应该是“跨平台”。 我不确定已接受答案中的说明是否适用于 Mac (OSX)。 (我后来证实他们确实在 Mac 上“工作”,但发现这个过程比我上面建议的更复杂。他们确实产生了一个目录,其中包含的包的形式应该以R --vanilla CMD INSTALL --build pathToEachPackageSeparately 成功)

【讨论】:

【参考方案3】:

您尝试安装的软件包的当前版本也可能需要更新版本的 R,例如,您可能会看到如下错误:

“错误:此 R 版本为 2.15.0,包 'PerformanceAnalytics' 需要 R >= 3.0.0”

然后你可以尝试更新你的 R

或者,如果你遇到和我一样的情况,正在尝试使用 pqR(目前使用 R 版本 2.15),你可以在这里找到过期的实现包:

http://cran.at.r-project.org/src/contrib/Archive/PerformanceAnalytics/

您可以从 R-Forge 软件包页面获取此处 -> “稳定版本:从 CRAN 获取 PerformanceAnalytics 1.4.3541” -> 旧来源:PerformanceAnalytics 存档

例如,您会发现包 PerformanceAnalytics 版本 1.1.0 只需要 R >= 2.14

祝你好运

【讨论】:

【参考方案4】:

R-Forge 可能由于几个不同的原因无法构建包。可能是这样 文档尚未更新以反映代码中的最新更改。要么, 可能是某些依赖项在构建时不可用。

您可以使用 svn 查看源代码。首先,在网站上搜索项目 R-Forge 网站并转到项目主页 -- 例如http://r-forge.r-project.org/projects/returnanalytics/ 点击 SCM 链接进入类似这样的页面http://r-forge.r-project.org/scm/?group_id=579

此页面将告诉您用于签出项目的命令。在这种情况下,您会得到

可以使用以下命令通过匿名访问签出此项目的 SVN 存储库。

svn checkout svn://svn.r-forge.r-project.org/svnroot/returnanalytics/

如果您使用的是 Windows,您可能需要下载并安装 TortoiseSVN

安装 TortoiseSVN 后,您可以在 Windows 资源管理器窗口中右键单击并选择 “SVN 结帐”。在“存储库的 URL:”字段中,输入除 “svn checkout”是您在 R-Forge 上找到的命令的一部分。在这种情况下,你会 输入“svn://svn.r-forge.r-project.org/svnroot/returnanalytics/”。

点击确定后,项目将下载到当前目录。

如果您使用的是类似 UNIX 的系统(或者如果您安装了命令行客户端工具 当你为 Windows 安装 TortoiseSVN 时,这不是默认的),你可以 在您的终端(系统终端,而不是 R 终端)中输入 R-forge 给您的命令

svn checkout svn://svn.r-forge.r-project.org/svnroot/returnanalytics/

这将在当前工作目录下创建一个新目录 包含包中的所有文件。在该目录的顶层 将是一个名为“pkg”的子目录。这个特定的项目(returnanalytics) 包含多个包。

ls returnanalytics/pkg
#FactorAnalytics  MPO  PApages  PerformanceAnalytics  PortfolioAnalytics

但是一些 R-forge 项目只有一个包。例如

svn checkout svn://svn.r-forge.r-project.org/svnroot/random/
#Checked out revision 14.
ls random/pkg
#DESCRIPTION  inst  man  NAMESPACE  R

现在您已经在本地复制了所有代码,如果您希望能够 安装包,你必须先构建它。

注意事项:由于 R-Forge 未能构建软件包,因此很有可能 包有问题。因此,如果您只是构建它,您可能会发现 有些事情没有按预期工作。特别是,很可能有 缺少或不完整的文档。

如果您使用的是类似 UNIX 的系统,则可以相对轻松地构建和安装该软件包。对于像 returnanalytics 这样的多包项目,如果你想安装,例如这 PortfolioAnalytics 包,你可以这样做

R --vanilla CMD INSTALL --build returnanalytics/pkg/PortfolioAnalytics 

“PortfolioAnalytics”是包含包的目录的名称 你想构建/安装。对于单包项目,您可以像这样构建和安装 这个

R --vanilla CMD INSTALL --build random/pkg

如果您想在 Windows 上构建/安装软件包,请参阅 this question 并遵循 @JoshuaUlrich 提供的 two links

更多信息请访问R Installation and Administration、the R-Forge User Manual和the SVN manual。

【讨论】:

--vanilla 的使用可能不是必需的,具体取决于 .Rprofile 中的内容。见***.com/a/11639336 INSTALL --build 构建包的二进制版本,但不安装它。另外,install.packages("XYZ",repos="http://r-forge.r-project.org", type = "source") 会更容易 @hadley R CMD build 构建一个包而不安装它。 R CMD INSTALL --build 确实安装它;自己试试。至于install.packages(..., repos="http://r-forge...", type="source"),或许你应该再看一遍问题。 哇,确实如此。文档很不清楚! (我没有看到使用R CMD build 构建二进制包的选项)为什么需要--build 来回答这个问题?我也不明白为什么install.packages + type = "source" 比 svn checkout + R CMD install 更糟糕 svn checkout + install.packagesrepos=NULL 很好,但由于我们已经在命令行上使用 svn checkout 部分,所以我只是从那里安装它。这是关于--build 的一个非常好的问题。我认为R CMD INSTALL --build myPackage 相当于R CMD build myPackage 后跟R CMD INSTALL myPackage_1.0.tar.gz。但是,经过一些测试,我发现它们并不相同——.Rbuildignore 似乎与R CMD INSTALL --build myPackage 不相符。

以上是关于无法使用 install.packages 安装 R-forge 包的主要内容,如果未能解决你的问题,请参考以下文章

在运行 install.packages() 之前检查已安装的软件包 [重复]

R软件安装程序包install.packages("TSA"),提示(因为‘lib’没有被指定),怎么解决,急求,谢谢!!!

R中的packages的下载和安装

pip 安装TensorFlow Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问。:

数据可视化R语言基础-安装加载包

Error in install.packages : cannot remove prior installation of package