作者Chris7462 (~烤焦面包~)
看板R_Language
标题[分享] MATLAB call R for Windows system
时间Mon Apr 15 16:03:57 2013
MATLAB call R function for Windows system
这是我之前工作的时候碰到问题。
我们需要用 MATLAB 去呼叫 R 里面的某些 library 跟 function
网路上有满多介绍文的,不过写得不是很详细。
我在这边做个 step by step 的纪录,也分享给有需要的人。
测试环境:Windows 7 64-bit
MATLAB version: 2009b - 2011a
R version: 2.11.1 - 2.15.3
(上面几个版本应该都可以用,至少我的没出过问题)
1. 开启 R 安装 package 'rscproxy'、'rcom'
> install.packages('rscproxy')
> install.packages('rcom')
接着安装 R-(D)COM ,要先在 R 里面下指令
> library('rcom')
接着 R 会要求你安装 installstatconnDCOM。
> installstatconnDCOM()
完成後使用 rscproxy, rcom 的 library
> library('rscproxy')
> library('rcom')
2. 下载 MATLAB R-link,解压缩後开启 MATLAB 设定 MATLAB_RLINK 的路径。
网址:
http://www.mathworks.com/matlabcentral/fileexchange/5051
把 MATLAB_RLINK 加入 search 的 path 。
下面是这个 package 的几个主要指令的介绍。
openR - 连结到 R server
evalR - 执行 R 的指令
getRdata - 把 R 的资料复制到 MATLAB
putRdata - 把 MATLAB 的资料复制到 R
closeR - 关闭 R server
3. 实际测试,开启 MATLAB 输入
>> openR; % 连结到 R Server
>> x=[1:50]; % 在 MATLAB 里面创造一个向量 x
>> putRdata('x',x); % 把向量 x 丢到 R 里面
>> evalR('y<-sqrt(x)'); % evalR 为一个呼叫 R 计算的函式
>> evalR('plot(x,y)'); % 用 R 画 x 对 y 的图
如果成功的话应该会看到像下图这样,MATLAB 会跳出一个 R 的 graphics device
http://tinyurl.com/d4bpt6n
>> closeR; % 记得每次呼叫完都要关起来
如果有出现 ERROR 的话,可以参考下面的 Troubleshooting 或是 Debugview 来帮忙
找出错误的原因。
http://www.unt.edu/rss/class/splus/UsingTheRDCOMserver.pdf
http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.109.72.132
※ 编辑: Chris7462 来自: 1.162.200.224 (04/16 02:02)
1F:推 Wush978:没用过MATLAB... 不过还是谢谢分享 04/16 06:08
2F:→ Chris7462:应该很少人会有需要用到 MATLAB 呼叫 R 吧 :p 04/16 14:33
3F:推 LouisPion: 感谢分享!! 我需要 02/05 15:01