From duncan at wald.ucdavis.edu  Thu Oct  6 23:12:34 2005
From: duncan at wald.ucdavis.edu (Duncan Temple Lang)
Date: Thu, 06 Oct 2005 14:12:34 -0700
Subject: [Rd] .Net Framework Wrapper
In-Reply-To: <001901c5ca9a$92b9c670$0f2b6880@ad.education.wisc.edu>
References: <001901c5ca9a$92b9c670$0f2b6880@ad.education.wisc.edu>
Message-ID: <43459342.3000009@wald.ucdavis.edu>

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


Cyrus Harmon has used the same approach to interface R to Lisp
and I recently discussed this with him. He has gotten a long way.

I have developed a "lot" of inter-system interfaces and I
hadn't really considered going this route, i.e. interfacing
to the C routines in the R API or further still those
not necessarily "published" in the DLL.  I tend to work
at higher level with a very thin engine that
connects the two systems.  Instead of calling,
for example, Rf_parse() (or whatever) and the Rf_eval(),
I create a very general C routine that can call an arbitrary R function
and with arbitrary arguments. Then I can call the R function parse().
Then I can also call the R function eval(). And the nice thing about
this is that error handling is done correctly.
If you call Rf_parse() at the C-level, where will you return
to if there is an error.

I have waited to interface to .Net until there appeared to be a need
for it. But I had planned on using the approach for interfacing to
other systems, i.e. using the thin engine.
I will be interested to compare the relative merits of your approach.
You have access to every aspect of R and can build the interface
in either language. So in principal, you can do everything in
a variety of languages.

  D.

Brian Vesperman wrote:
> I am going to attempt to develop a wrapper for the R.dll library in the .Net
> framework. 
> 
>  
> 
> I successfully interfaced with some very simple functions from the library,
> but nothing close to do some data analysis.
> 
>  
> 
> I dumped all the "publicly" available functions and attributes from the
> windows dll and found there are 2671 functions and attributes.
> 
>  
> 
> I created an API document that just has the function signatures and what
> code file I found the function in; I have links to the file below:
> 
>  
> 
> http://valueadded.wceruw.org/LinkClick.aspx?link=R-API.pdf
> <http://valueadded.wceruw.org/LinkClick.aspx?link=R-API.pdf&tabid=36&mid=377
> 
>>&tabid=36&mid=377 PDF file
> 
> 
> http://valueadded.wceruw.org/LinkClick.aspx?link=R-API.doc
> <http://valueadded.wceruw.org/LinkClick.aspx?link=R-API.doc&tabid=36&mid=377
> 
>>&tabid=36&mid=377 MS Word life
> 
> 
>  
> 
>  
> 
> If this information is useful to anyone else please contact me. If there is
> any interest to expand this document, I might setup some sort of help file
> Wiki where people could add to the documentation.
> 
>  
> 
> If anyone would like to join my effort please contact me. Hopefully it
> doesn't become too difficult and I will be able to make some headway.
> 
>  
> 
>  
> 
> Brian Vesperman
> 
> Associate Information Processing Consultant
> 
> Wisconsin Center for Education Research
> 
> RM 772
> 
> 1025 W. Johnson St
> 
> Madison WI, 53706
> 
> 608-265-5623
> 
>  
> 
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel

- --
Duncan Temple Lang                duncan at wald.ucdavis.edu
Department of Statistics          work:  (530) 752-4782
371 Kerr Hall                     fax:   (530) 752-7099
One Shields Ave.
University of California at Davis
Davis, CA 95616, USA
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (Darwin)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFDRZNC9p/Jzwa2QP4RAl/MAJ0axT/rpc36jvcoInScMd+nXYQ8WQCdEjVB
d9aD4Yrc/5m5Twbu8n//n2o=
=gQdX
-----END PGP SIGNATURE-----



[Rd] .Net Framework Wrapper
Duncan Temple Lang