[Rd] Utilizing the internet module

Jeffrey Horner jeff.horner at vanderbilt.edu
Fri Feb 24 00:07:29 CET 2006


Prof Brian Ripley wrote:
> On Thu, 23 Feb 2006, Jeffrey Horner wrote:
> 
>> Hello all,
>>
>> I'd like to utilize the R_Sock* functions from R_ext/R-ftp-http.h in my
>> R package. The intent is to use these in conjunction with R_serialize()
>>  to store R objects in a remote data store. I'm aware that version
>> 2.2.1 of "Writing R extensions" explains that these may be undocumented
>> and unstable, but I have a couple of questions:
>>
>> 1) are they platform independent? I presume they are...
> 
> 
> Only in sense that they have a common interface.
> 
>> 2) What's the appropriate way to link against them? On Linux x86, I can
>> do this with the Makevars:
> 
> 
> You can, but that is a module and not a library and so it does not work 
> on MacOS X and may well not work on Windows (you would be lucky prior to 
> R 2.3.0).
> 
> I wonder why you need a C interface at all.  There is serialize() and 
> socket connections are available at R level.  Below that, Rsockopen etc 
> are exported from R itself and underly make.socket etc.

I may not need it (or get to use it portably), but as far as using 
Rsockopen, etc. am I right in assuming that a package writer would have 
to copy the declarations from src/main/basedecl.h into his/her own code 
in order to utilize them? This seems odd when there's already an exposed 
(although undocumented) interface with R_Sock*, so what's the point of 
having R_ext/R-ftp-http.h? Is it just for some xml package?

On a related note, how do I serialize() an R object to a database table 
column of type BLOB? I've tried using RODBC but was unsuccessfully (see 
R-sig-DB in Feb archive). I've also looked into RMySQL/DBI but I don't 
think it's supported yet.



-- 
Jeffrey Horner       Computer Systems Analyst         School of Medicine
615-322-8606         Department of Biostatistics   Vanderbilt University



More information about the R-devel mailing list