4.66667

4.7 | 21 ratings Rate this file 136 downloads (last 30 days) File Size: 127.41 KB File ID: #5051

MATLAB R-link

by Robert Henson

 

01 Jun 2004 (Updated 08 Jun 2004)

No BSD License  

Functions for calling the statistical package R from within MATLAB.

Download Now | Watch this File

File Information
Description

A COM based interface that allows you to call R functions from within MATLAB. The functions are:

openR - Connect to an R server process.
evalR - Run an R command.
getRdata - Copies an R variable to MATLAB.
putRdata - Copies MATLAB data to an R variable.
closeR - Close connection to R server process.
Rdemo - An example of using R from withing MATLAB.

MATLAB release MATLAB 6.5 (R13)
Other requirements Windows Only. You will need a local installation of R and you will also need to install the R-(D)COM interface from http://lib.stat.cmu.edu/R/CRAN/other-software.html or other CRAN mirror site.
Zip File Content  
Published M Files Connecting MATLAB to R
Other Files
Rdemo.m,
Contents.m,
evalR.m,
getRdata.m,
openR.m,
putRdata.m,
Rdemo.png,
Rdemo_01.png,
Rdemo_02.png,
Rdemo_03.png,
Rdemo_04.png,
closeR.m
Tags for This File  
Everyone's Tags
Tags I've Applied
Add New Tags Please login to tag files.
Comments and Ratings (38)
07 Oct 2004 avneet singh

works like a charm

27 Apr 2005 Beat Huggler

Easy to install!

07 Dec 2005 Yuri K

Works great. Any way to get structures and data frames from R?

13 Mar 2006 Matlab User

gave me a lot of power (huge statistical package) that can be easily used in Matlab
code.

22 Mar 2006 Pierre Lebrun

easy to install, add extreme power to matlab, especially when using models (regression etc.) mixing both qualitative and quantitative variables.

04 Apr 2006 David Dabin

A very good tool for statisticians who want more than just the statistical toolbox of Matlab...

21 Apr 2007 Kish AS  
03 Jun 2007 qiao nan

Excellent!

20 Jun 2007 Xuejian Xiong

It is a great tool.
However, I got the following error message when using the closeR function:
"Cannot close R session. Error: The remote procedure call failed."
I use Matlab(R2006a), R(2.2.1), and RSrv250. Seems like it is a bug?

10 Jul 2007 e k

An excellent set of functions that works beautifully under 2000 & XP.

02 Jan 2008 Klaus Maresch

I have the same problem.
"Cannot close R session. Error: The remote procedure call failed."
I use Matlab 6.5.0.180913a (R13), and RSrv250. Seems like it is a bug?

13 Feb 2008 Lourdes Pelayo

The interface is very nice. I can call R from MATLAB and get the results very easily.
But how can I run a complete program code in R from Matlab?
I have several loops in my R code. Besides I don't want to type all my R code in every evalR instruction.
Thanks

24 Mar 2008 John Smith  
03 Apr 2008 zhang hui

I just find this today !!!!I will use it before make some comment on it

05 Apr 2008 zhang hui

 I can read the matrix "vocano" in R command window, but I can't read out "vocano" in using volcano = getRdata('volcano') in matlab; what's wrong with it ?
thanks

07 May 2008 firdaus janoos

excellent package. makes the hideously designed R usable by general engineers.

04 Jun 2008 Bryan Grenfell

Fantastic idea and potentially very useful.. Worked well initially, now having trouble (a) moving regression output (eg residual vector) back to Matlab correctly; (b) a simple correlation of 2 vectors in gives lots of 'ActiveX errors'...

11 Jun 2008 sb mmth

is there a way to make it work with MAC OS ?

12 Jun 2008 shiun shiau

I have the same problem. I can't read out "vocano" and the error message is "Invoke Error, Dispatch Exception". What's wrong with it? Thanks.

24 Jun 2008 Boris Danev

Very helpful API for R. It saved me lots of work. Thank you.

24 Jul 2008 May Tan

R_lInK_hANdle.SetSymbol does not work for me.
Could someone help?

27 Aug 2008 Ankur P

Great way to make use of some important R commands in MATLAB. Thanks a lot!

01 Sep 2008 Maya Neytcheva

A great idea! However did not work for me.
I tried it under unix and linux. The complain is that 'actxserver' is not found.
Am I blind for something obvious?
Is it only for Windows-users?
A comment will be appreciated.

19 Sep 2008 xiaofeng dai

This package looks brilliant, but I can not get it work, matlab always complain "Server creation failed. Invalid ProgID 'StatConnectorSrv.StatConnector'" although I have instaledl the R-(D)COM interface. What is the problem?

04 Dec 2008 Anthony Kendall

Very handy and lightweight set of functions. Thank you!

To answer some questions:
1) actxserver is a MATLAB function found only in Windows
2) make sure you install the R-(D)COM interface, paying attention to the instructions about setting your R_HOME and PATH variables in the environment variables for your system. I received this same error, but once I restarted my machine and set the paths (and restarted MATLAB) it worked just fine.

06 Feb 2009 Patrick Tai

Wonderful tool, I have been using it for almost a year, thank you.
Is there a way to call R (from MATLAB) so that R runs in the background?
R is called via a MATLAB UI command button. The R function may take a long time. When waiting, the MATLAB UI stops refreshing, which leads to ugly displays if the UI windows are moved around. I hope, by calling R in the background, this will be addressed.
Thank you.
Patrick Tai.

24 Feb 2009 necati

Hi,
First of all i want to thank to all developer in such a tool. It seems very useful to me.

However, can you please help me about setting the R_HOME and PATH variables? I can not connect Matlab and R still.

Thanks.
Necati Sekkeli

24 Feb 2009 Patrick Tai

If your R-link files (openR etc.) are in folder D:\R\Rlink, then add the following path to MATLAB:

D:\R\Rlink

How do you add a MATLAB path? To find out, enter command in MATLAB
>> doc path

12 Mar 2009 seonjoo irncjbra

It works at XP but when I tried to use at Vista, it did not work. Do I need extra step to make it work? Or openR is not for vista?

02 Jun 2009 Sophie

Hi!
I installed R (R2.9.0.exe) on my pc (windows), I installed Scilab DCOM interface. And I downloaded your Matlab R-link and put the folder path where it is stored in the path of Matlab but I still get this error while using openR:
Problem connecting to R: Error using ==> actxserver at 91
Server creation failed. Invalid ProgID 'StatConnectorSrv.StatConnector'

Any idea what I miss? what I am doing wrong?
Thanks in advance for your help

02 Jun 2009 Sophie

I added R_HOME in the environment variables but still I have the following error:
??? Error: Object returned error code: 0x80040013

when the code is calling: R_lInK_hANdle.Init('R');

13 Jun 2009 Martin Heroux

Overall, it seems like this will add a great deal of versatility to Matlab. Unfortunately, the documentation is very succinct and I am having difficulty getting even basic statistical tests to give me an output in Matlab.

% Running a simple K-S test to determine whether two samples have the same distribution
a = rand (100,1); % creating a random signal
i = pi/100 :pi/100: pi;
b = (sin (i))' + a; % creating second signal

% Putting both signals into R
putRdata('a',a);
putRdata('b',b);

% Running ks.test in R and retrieving the output
evalR ('output <- ks.test(x, y)')
getRdata ('output')

%%%%%

I can run this code in R and get the output from the statistical test. However, when I try to get the R data (getRdata), Matlab give me the following error message:

Error using ==> getRdata at 47 Could not get output.
Invoke Error, Dispatch Exception: There is no connection for this connection ID

Any suggestions on how to get the output into Matlab.

Cheers

24 Jun 2009 Mike

i had a similar problem to sophie. I downloaded the package rscproxy to my R installation and the problem went away.

28 Jul 2009 Samuel Maistre

How can i load R packages? I tried evalR('library(...)') but it doesn't seems to work.

02 Sep 2009 Patrick

I want to launch R from MATLAB.
I have been using R2.7.0 and DCOM Server 2.5.0 successfully.

I want to upgrade R to 2.8.0 (and later 2.9.2) and I realize that I have to change the DCOM Server. I did the following:
1. Downloaded and installed R 2.8.0 from http://cran.r-project.org/bin/windows/base/old
2. Changed Window system path to point to R-2.8.0/bin
3. Downloaded and installed R_Scilab_DCOM3.0-1B5.exe from http://cran.r-project.org/bin/windows/base (took all options)
4. Installed R package rscproxy_1.3-1.zip from http://cran.r-project.org/web/packages/rscproxy/index.html

I rebooted the computer and run statement openR in MATLAB, a Visual C++ Runtime error box appears, with error message:

Also, I ran the provide (D)COM Server test (Server 1 – Basic Test) from the Windows Start button. In the popped up Window “StatConnector Test”, I click “Start R”, and I got the Visual C++ Run-time error message:
Program: C:\...\Statco~1.exe abnormal program termination.
When error dialog box is OKed, the error “Initializing R .. Function call failed” appeared in the StatConnector Test window.

As a result to this, MATLAB failed to run openR, resulting in a similar Visual C++ Runtime error.

Thanks for help.
Patrick Tai.

18 Sep 2009 Jeremy

Rproxy.dll is no longer installed by R-2.9.2. Install the rscproxy package from CRAN. Copy C:\Program Files\R\R-2.9.2\library\rscproxy\libs\rcsproxy.dll to C:\Program Files\R\R-2.9.2\bin\Rproxy.dll, and it seems to work.

20 Oct 2009 Jianglin MA

Reply to Martin Heroux:
You can change your code in this way, and it will work.
%%
status = openR;

% Running a simple K-S test to determine whether two samples have the same distribution
a = rand (100,1); % creating a random signal
i = pi/100 :pi/100: pi;
b = (sin (i))' + a; % creating second signal

% Putting both signals into R
putRdata('a',a);
putRdata('b',b);

% Running ks.test in R and retrieving the output
evalR ('output <- ks.test(a, b)')
getRdata ('output')

closeR;

18 Nov 2009 Massimo

Hi all,
is there a way to use Rlink on a unix server?
thanks

Please login to add a comment or rating.
Updates
08 Jun 2004

Added a "published M-file"

Tag Activity for this File
Tag Applied By Date/Time
statistics Robert Henson 22 Oct 2008 07:21:27
probability Robert Henson 22 Oct 2008 07:21:27
r cran Robert Henson 22 Oct 2008 07:21:27
 

MATLAB Central Terms of Use

NOTICE: Any content you submit to MATLAB Central, including personal information, is not subject to the protections which may be afforded information collected under other sections of The MathWorks, Inc. Web site. You are entirely responsible for all content that you upload, post, e-mail, transmit or otherwise make available via MATLAB Central. The MathWorks does not control the content posted by visitors to MATLAB Central and, does not guarantee the accuracy, integrity, or quality of such content. Under no circumstances will The MathWorks be liable in any way for any content not authored by The MathWorks, or any loss or damage of any kind incurred as a result of the use of any content posted, e-mailed, transmitted or otherwise made available via MATLAB Central. Read the complete Terms prior to use.

Contact us at files@mathworks.com