9

前段时间,您曾经能够rcom在 R 中安装软件包以使用 COM 脚本(例如,访问外部程序)。不幸的是,它似乎已停止使用

软件包“rcom”已从 CRAN 存储库中删除。

以前可用的版本可以从存档中获得。

这取决于现在限制使用的 statconnDCOM,这与具有 FOSS 许可证的软件包的 CRAN 政策相反。请参阅 http://rcom.univie.ac.at/http://www.statconn.com/

按照存档和 statconn 链接并在 R 版本 3 中安装旧版本之一会出现错误:

“错误:包 'rcom' 是在 R 3.0.0 之前构建的:请重新安装它”。

我对R不是很熟悉,但似乎没有办法绕过这个消息——毕竟它是在安装时发生的,所以重新安装似乎不是答案。似乎rcom对于最近的(3.0+)版本的 R 根本不可用。我也扫描了包列表,尽管在那里搜索“COM”会返回一百多个结果,并且点击时我可能错过了正确的结果他们。

如何使用该rcom包,或以其他方式从 R 中使用 COM?

(注意:我是代表同事问这个问题。我自己对R完全没有经验。我们俩在寻找答案时都找不到任何东西。我相信其他人最近也在使用COM不过,R 的版本!)

4

3 回答 3

7

几个月前我查看了 rcom 源代码。看来我可以让它在 R3.0.1 上构建和安装 OK。如果有帮助,以下是过程。

  • 查看最新的 rcom 源代码。我在本地有 rcom_2.2-5.tar.gz。我可以在以下地址搜索一些东西,但我不知道出处,所以由你来检查它是否合法。http://cran.open-source-solution.org/web/packages/rcom/index.html
  • 在R做install.packages('rscproxy')
  • 按照 R 网站 ( http://cran.r-project.org/bin/windows/Rtools ) 上的说明安装 Rtools,
  • 打开 Windows 命令提示符,即运行“CMD”
  • 转到包含“rcom”文件夹的文件夹,然后在命令提示符下:

    set R="c:\Program Files\R\R-3.0.1\bin\i386\R.exe"
    %R% CMD check --no-manual rcom
    
  • 检查它通过没有太多的投诉。您对 --no-manual 选项的调用(如果您安装了 MiKTeX,您可以将其删除)

    %R% CMD INSTALL rcom
    

应该导致

    installing to c:/Rlib/rcom/libs/i386
    ** R
    ** inst
    ** preparing package for lazy loading
    ** help
    *** installing help indices
    ** building package indices
    ** testing if installed package can be loaded
    rcom requires a current version of statconnDCOM installed.
    To install statconnDCOM type
         installstatconnDCOM()
    This will download and install the current version of statconnDCOM
    You will need a working Internet connection
    because installation needs to download a file.
    * DONE (rcom)
  • 在 R 中:

    library(rcom)
    installstatconnDCOM()
    
  • 我尝试了 acomRegisterRegistry() ; comRegisterServer() ; x<-comGetObject("Excel.Application")但我得到一个 NULL x。我不是 rcom 的用户,所以虽然它似乎编译得很好;它可能不再起作用了。

如果您碰巧需要访问 .NET 代码,一个可行的选项(是的,我有提及它的既得利益)可能是rClr包。

希望这可以帮助; 我很想听听你的情况。

于 2013-09-06T06:22:41.010 回答
5

这真的应该是一个评论,但我还没有足够的代表点留下一个。我发现上述步骤对我不起作用,但是 Lisa Ann 在这个问题上发布的答案RExcel in R 3.0.x确实解决了我安装 rcom 的问题。由于您需要 rcom 来运行 RExcel,因此安装 RExcel 的初始步骤包括在较新版本的 R(例如 3.0.2)上安装 rcom。

具体来说,遵循 statconn wiki 上的建议,http://homepage.univie.ac.at/erich.neuwirth/php/rcomwiki/doku.php?id=wiki :how_to_install

如果您升级 R,您还需要遵循这些说明,即在安装 RExcel 后安装新的 >R 版本。

下载statconn DCOM服务器并执行你下载的程序 以管理员身份启动R(在Windows 7上你需要右击R图标并点击>对应项) 在R中,运行以下命令(你必须以管理员身份启动R才能做这个)

install.packages(c("rscproxy","rcom"),repos="http://rcom.univie.ac.at/download",lib=.Library)

图书馆(rcom)

comRegisterRegistry()

现在您已经安装了 rcom,[安装 RExcel 的说明如下...]

于 2014-03-01T22:26:27.413 回答
2

新版本的 rcom 和 rscproxy(也适用于当前版本的 R)可从不同的存储库中获得。只需使用http://rcom.univie.ac.at/download作为 R 存储库进行安装,您就可以从那里下载和安装 statconn 软件包的二进制版本。

希望这可以帮助!

于 2014-01-01T11:32:37.870 回答