62

这个, question , is , ask , over , and , over , and , over , 在R-sig-finance邮件列表上,但我认为在 stackoverflow 上没有被问到。

它是这样的:

我在哪里可以获得 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")

4

4 回答 4

52

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 checkout”。在“存储库的 URL:”字段中,输入您在 R-Forge 上找到的命令的“svn checkout”部分以外的所有内容。在这种情况下,您将输入“svn://svn.r-forge.r-project.org/svnroot/returnanalytics/”。

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

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

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 上构建/安装软件包,请参阅此问题并点击@JoshuaUlrich 提供的两个 链接

更多信息可以在R 安装和管理R-Forge 用户手册SVN 手册中找到。

于 2012-06-19T16:16:51.160 回答
3

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

# 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")

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

于 2017-03-12T01:41:44.050 回答
2

您尝试安装的软件包的当前版本也可能需要更新版本的 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

祝你好运

于 2014-10-09T08:46:56.443 回答
0

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

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

警告消息:“包 'ggfortify' 不可用(对于 R 版本 3.3.2)”</p>

ggfortify是同一包的 GitHub 存储库。

devtools库允许您直接使用install_github('username/repo').

library(devtools)
install_github('sinhrks/ggfortify')
于 2018-02-01T11:22:37.933 回答