Jul 052014
 
This entry is part 11 of 13 in the series Matlab基础班附加材料

好久没有折腾这些技术了,因为现在真的用不上。但是偶然一个机会,我又重新研究了一下。

1. 最新版的安装(或者说更新)

最初我的版本搭配是R2.15+Statconn3.4+Rcom2.2-5+Rscproxy2.0-5,安装后应该不会有问题(见到过问题,详见后文),现在R版本有了很大的更新,例如今天尝试的最新版是R3.1。把老版R卸载,安装最新版R后,如果其他三个组件版本都不升级,安装整个4组件的体系不会有问题,但是在启动连接器时会提示错误,在Basic Test里面有详细的错误信息如下:

Loading StatConnector Server... Done
Initializing ...Function call failed
Code: -2147221487
Text: installation problem: interpreter version mismatch
Releasing StatConnector Server...Done

如果仅仅是为了使用,那么其他三个组件里面,Statconn组件和Rcom组件的版本都可以不升级,只要升级Rscproxy到最新版即可解决问题。怎样安装/升级Rscproxy呢?两个步骤,首先打开R,然后菜单“程序包”--“软件库”,把其中所有的软件库都勾选上(Bio开头的可以不考虑),然后还是菜单“程序包”--“安装程序包”,从里面选个下载位置,然后选要安装的程序包,从里面找到 rscproxy 安装即可。

如果完美主义者,例如我,想把所有的都更新到最新版本,那么推荐的次序如下:

第一步:从 http://www.r-project.org/  下载最新版的R软件。如果此前有安装老版本的R,那么安装前可以先删除。

除非你是管理员权限的Windows用户,否则安装目录强烈不推荐安装在 C:\Program Files\ 目录下面,因为可能出现诡异的问题,详见第二部分。

安装R后,可以一鼓作气把 rscproxy 安装了。安装方法如上文所述。

第二步, 打开statconn的主页: http://rcom.univie.ac.at/  (点击上方 Download )。

从主页找到 statconnDCOM 栏目部分,下载最新版(非商业版)的statconn,例如现在最新是3.6B版本;如果之前有装过老版本的statconn,记得先删除掉老版本,然后安装新版本即可(由于软件不大,建议安装时选择安装所有组件)

第三步,还是在主页上,找到rcom(可以从页面上方导航栏点击进入),下载最新版的rcom,例如现在最新是2.3版,下载这个zip文件放在硬盘上,然后启动R,从菜单“程序包”--“从本地Zip文件安装”,选择刚才下载的rcom的zip文件,安装即可

第四步,安装或升级,以确保R中的rscproxy是最新版。

第五步,测试。从Windows菜单里面的statconn目录中找到很多测试工具,选择第一个 Basic Test,如下:

statconn basic test

statconn basic test

点击其中R按钮,如果出现如图这样的文字,说明安装成功,测试通过!

第六步,从Matlab中连接R的测试。打开Matlab,把R-Link的那些m文件放在合适的目录,把此目录加入到Matlab的搜索路径,然后用 openR.m 文件运行从而启动R,只要不提示出错,即为成功!一般而言,只要第五步的Basic Test通过,Matlab连接就不会有什么问题了。

2.  最近遇到的一个很诡异的Bug

还是老的 R2.15+Statconn3.4+Rcom2.2-5+Rscproxy2.0-5 组合,安装都不会提示任何问题,但是做Basic Test的时候,它会提示 错误代码 -2147221485  (在Matlab中提示的是16进制错误号: 0x80040013),查询statconn的文档,这个错误含义是 SCN_E_LIBRARYNOTFOUND ,即R中找不到库(估计是rcom或者rscproxy中某个库)。但是,从R中安装这些库没有任何问题。

最后找到问题所在,不知道为何,R默认将自行安装的库文件安装到了 D:\R\win-library\(版本号) 目录下面,而R的正式的安装目录却是 C:\Program Files\R\(版本号) 这个目录下。而statconn的文档中明确说了,库需要放在默认的位置,即 C:\Program Files\R\(版本号)\Libarary 中。从而导致找不到库。

如果从R中修改库的默认路径,我还真不会,因此最后只好把R彻底删除,重装到D盘,然后安装库默认到R安装目录下面,之后问题就解决了。

【故障猜测】,我猜想,问题可能是这样的,由于该机器的权限设定较为严格(不像我自己机器,用的是管理员身份登录,从而任何程序都有完全权限),安装R的时候,还可以通过 Trusted Installer获得 C:\Program Files\ 目录的读写权限, 但是安装完毕后,再启动R,那么R这个软件就不再有写文件到 C:\Program Files\目录的权限了,因此通过R安装程序包的时候,R不得不到D盘上另外找一个目录写文件。

—— 经验教训:任何时候,如果所用的Windows用户的权限不够(非管理员权限),那么强烈建议安装软件时,将软件安装在D盘,可以避免未来该软件在使用过程中出现各种因权限受限所导致的幺蛾子。

PS:

貌似最新Statconn支持连接64位R,当时第一次测试失败,回头有空再研究吧。这个紧迫性不强,毕竟32位R远远够用。

No related posts.

Series Navigation<< OpenCL-Toolbox的安装(Matlab2012A+nVidia 610M)从Matlab调用Excel中的宏过程 >>
Bookmark/FavoritesSina WeiboGoogle+FacebookQQTwitterYahoo BookmarksBaiduDiggEmailGoogle GmailOutlook.comEvernotePrintAIMLinkedInBlogger PostKindle ItShare

Related Posts:

 Leave a Reply

(required)

(required)


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>