如何在R v3中访问Windows COM对象?

时间:2013-08-13 07:23:50

标签: r com

前一段时间,您曾经能够安装rcom package in R to use COM scripting(例如,访问外部程序。)不幸的是,seems to be discontinued

  

软件包'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版本。我也扫描了package list,虽然搜索“COM”会返回超过一百个结果,这是可能的点击它们时我错过了正确的一个。

如何使用rcom包,或以其他方式使用R内的COM?

(注意:我代表一位同事问这个问题。我根本没有R自己的经验。我们两个人在寻找答案时都找不到任何东西。我相信其他人也在使用COM在最新版本的R中,尽管!)

3 个答案:

答案 0 :(得分: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()
    
  • 我尝试了comRegisterRegistry() ; comRegisterServer() ; x<-comGetObject("Excel.Application"),但我为x获取了一个NULL。我不是rcom的用户,所以虽然它似乎编译得很好;它可能不再起作用了。

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

希望这会有所帮助;我很想知道你怎么走。

答案 1 :(得分:5)

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

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

  

如果您升级R,也需要按照这些说明操作,即在安装RExcel后安装新的&gt;版本的R。

     

下载statconn DCOM服务器并执行您下载的程序   以管理员身份启动R(在Windows 7上,您需要右键单击R图标并单击&gt;相应项目)   在R中,运行以下命令(必须以管理员身份启动R才能执行此操作)

     
    
      
        

install.packages(C( “rscproxy”, “RCOM”),回购= “http://rcom.univie.ac.at/download”,LIB = .Library)

                 

库(RCOM)

                 

comRegisterRegistry()

      
    
  
     

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

答案 2 :(得分:2)

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

希望这有帮助!

相关问题