[分享] MATLAB call R for Windows system
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)
推
04/16 06:08, , 1F
04/16 06:08, 1F
→
04/16 14:33, , 2F
04/16 14:33, 2F
推
02/05 15:01, , 3F
02/05 15:01, 3F
R_Language 近期熱門文章
PTT數位生活區 即時熱門文章