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$
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$
  • $\begingroup$ I've got exceptions when executing myR@Init["R"]: NET::netexcptn: A .NET exception occurred: System.Reflection.TargetInvocationException $\endgroup$ – ziyuang Feb 7 '12 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$ – Sjoerd C. de Vries Feb 7 '12 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$ – ziyuang Feb 8 '12 at 17:48
  • $\begingroup$ Where can I get a full list of the methods (GetSymbol/SetSymbol/EvaluateNoReturn/...)? $\endgroup$ – ziyuang Feb 8 '12 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$ – Sjoerd C. de Vries Feb 8 '12 at 20:11
14
$\begingroup$

Mathematica 9 includes an RLink feature.

$\endgroup$
  • $\begingroup$ Yes, I've noticed that. Thank you~ $\endgroup$ – ziyuang Nov 29 '12 at 19:20
  • 3
    $\begingroup$ I came too late :). +1 $\endgroup$ – Leonid Shifrin Nov 29 '12 at 23:39
  • $\begingroup$ @LeonidShifrin like you need the reputation ... :) $\endgroup$ – rcollyer Dec 8 '12 at 18:57
  • 1
    $\begingroup$ @rcollyer Well, there is never enough :) $\endgroup$ – Leonid Shifrin Dec 8 '12 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$ – Andreas Lauschke Dec 8 '12 at 19:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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