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

这个 问题 是在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")

由于几个不同的原因,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系统(或者如果您在安装Windows的TortoiseSVN时安装了命令行客户端工具(这不是默认设置)),则可以键入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手册 。

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

 # 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应该是成功的R --vanilla CMD INSTALL --build pathToEachPackageSeparately

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

祝你好运