22
$\begingroup$

I want to borrow the vast amount of packages of R. I know there was one but it is neither sold nor supported anymore. So are there any active open source projects for linking R with Mathematica? Thank you.

$\endgroup$

2 Answers 2

14
$\begingroup$

Erich Neuwirth on MathGroup mentioned a solution for Windows (free for non-commercial applications) that you can download here.

Here is his example with small updates from Sasha and Mark Fisher. After downloading the R instalation and DCOM server stuff I tried it and it seems to work just fine.

Needs["NETLink`"]
myR = CreateCOMObject["StatConnectorSrv.StatConnector"]
myR@Init["R"]
myR@SetSymbol["xxx", 12321]
result1 = myR@GetSymbol["xxx"]
myR@EvaluateNoReturn["randmat<-matrix(rnorm(100),10)"]
rmat = myR@GetSymbol["randmat"]
result2 = myR@Evaluate["solve(matrix(1:4,2))"]

(*
==> NETLink`Objects`NETObject$3810539581$1070974657101825
*)

(*
==> 12321
*)

(*
==> {{-0.2729702674, 1.803861976, 0.5813040979, 0.1600081953, 
  0.7538751951, 0.3923246778, 1.240256949, 2.143071289, -0.2112634412,
   0.9417189228}, {-0.1815065752, 0.6340400316, 
  0.6235181836, -0.1729713552, -0.965223049, -0.8076688634, 
  0.6125102682, 0.8043927759, 
  0.2623272614, -0.7300377248}, {-0.1573784247, 
  1.745921499, -1.223295754, 
  0.7508255497, -1.437158433, -0.5431748169, 
  0.5224185732, -0.006148655396, -0.5381351892, -0.1264029232}, \
{-0.2285349193, 0.5978044841, 
  0.7099844671, -0.830220449, -0.5994523393, -0.1600179795, 
  0.2957343203, -0.2560352574, 
  1.45552903, -0.9763608981}, {-0.5509826168, 0.4205191323, 
  2.021672968, 0.4834619721, -0.6738896365, -1.782509979, 0.515151609,
   0.6698301759, -1.914440159, 0.1741606405}, {1.199489342, 
  1.397342011, -0.08762926484, 0.3572575699, 0.1415520058, 
  0.2384566775, -0.598134357, -0.199506724, -0.4849505361, 
  0.1238990228}, {0.55417032, 
  0.4911786903, -0.2432415953, -1.270176719, 
  0.3143047255, -0.3256634613, 0.9347990095, 
  0.6459510591, -0.924018154, 1.091294398}, {-0.5705422396, 
  0.1740525789, -0.7607604118, -0.4584603394, -2.602648464, \
-0.08879130709, 1.550124853, 0.4472847015, 0.1335582644, 
  0.07635818615}, {1.301494963, 1.106258178, 
  0.3354845242, -1.45468913, -0.3581930843, 
  1.187368824, -0.1503588385, 0.1511637701, 2.236312191, 
  1.067101554}, {0.04525815419, 0.1181913247, 
  1.588764281, -0.7367518216, -1.79115224, -3.891936361, 2.463525431, 
  2.721622641, 0.8049086131, -0.1488657311}}
*)

(*
==> {{-2., 1.5}, {1., -0.5}}
*)

myR@Close[]
$\endgroup$
10
  • $\begingroup$ I've got exceptions when executing myR@Init["R"]: NET::netexcptn: A .NET exception occurred: System.Reflection.TargetInvocationException $\endgroup$
    – Ziyuan
    Commented Feb 7, 2012 at 18:59
  • $\begingroup$ @ziyuang I assume you did à successful full download and install of the above mentioned R system and DCom connector? For me, it worked as advertised. $\endgroup$ Commented Feb 7, 2012 at 23:05
  • $\begingroup$ I did not notice the warning from statconn's page, saying "...All the statconn tools (statconnDCOM, rcom, RExcel ..) work only with the 32bit version of R..." And everything is fine after I installed the i386 version of R. $\endgroup$
    – Ziyuan
    Commented Feb 8, 2012 at 17:48
  • $\begingroup$ Where can I get a full list of the methods (GetSymbol/SetSymbol/EvaluateNoReturn/...)? $\endgroup$
    – Ziyuan
    Commented Feb 8, 2012 at 18:03
  • $\begingroup$ @ziyuang If I study the installed documentation (see the stacon installation folder) it looks the above example basically shows all the methods. $\endgroup$ Commented Feb 8, 2012 at 20:11
14
$\begingroup$

Mathematica 9 includes an RLink feature.

$\endgroup$
5
  • $\begingroup$ Yes, I've noticed that. Thank you~ $\endgroup$
    – Ziyuan
    Commented Nov 29, 2012 at 19:20
  • 3
    $\begingroup$ I came too late :). +1 $\endgroup$ Commented Nov 29, 2012 at 23:39
  • $\begingroup$ @LeonidShifrin like you need the reputation ... :) $\endgroup$
    – rcollyer
    Commented Dec 8, 2012 at 18:57
  • 1
    $\begingroup$ @rcollyer Well, there is never enough :) $\endgroup$ Commented Dec 8, 2012 at 18:58
  • $\begingroup$ OK, here comes mine. (not that I use R, or ever would, but I am told the author of RLink in M9 is beyond brilliant.) $\endgroup$ Commented Dec 8, 2012 at 19:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.