R-beta: Accessing S-plus objects from R -- no. Must use ASCII files.

Martin Maechler maechler at stat.math.ethz.ch
Mon Oct 20 15:49:43 CEST 1997

Salut Jean-François,

(( you should really use a "Subject:..." in your postings... ))
>>>>> "JFG" == Jean-Francois Gibrat <gibrat at proline.jouy.inra.fr> writes:

    JFG> I am currently trying to switch from Splus to R and I would like
    JFG> to know whether there is a way of transfering Splus objects stored
    JFG> on disk into the R environment. 
No, there's no direct way.  However, see below for a solution.

    JFG> In Splus I would do this using the
    JFG> function get, e.g., foo <- get(foo,where="dirname") where dirname
    JFG> is the name of a directory containing the Splus objects. In R,
    JFG> argument 'where' of function get appears to be replaced by
    JFG> argument 'envir', whose meaning is rather nebulous for me at the
    JFG> moment.....  Thanks for answering me. Sorry if this question has
    JFG> been already asked zillion of times, as it is likely to have been.
not quite a zillion....

I think the new (not-yet-released) version of the FAQ will help you quite a
bit more here [[I assume you looked at the current released FAQ ...]]

Big difference  S <-> R:

	In S / Splus, objects are stored as single files in Data directories.
	  (at least conceptually, in S-plus Windows, this is not quite true..).

	In R,	they are only stored in memory, or as part of the ``image'',
	when you use  save(..)  or q("yes")
	{{and they are reloaded automatically if the image is called
		".RData" and is in your current directory,
	  or by  load(...) explicitly.}}

  Most of ``us'' however use source files and source(..) 
	(and Emacs S-mode / R-mode ...) for our own functions and things.
  If you use HUGE data sets, R is not really there yet with
   ``memory-mapped'' objects.
Solution of your problem:
	Get your data and function into R, using

	and/or  read.table(.).

	To this end, you must save your S-plus objects in the proper format
	from WITHIN S-plus, 
	using  dump(..) [then you'll use source(..)]
	or     write(..) / write.table(..), then use scan(.) or read.table(.). 

I hope this helps.

Martin Maechler <maechler at stat.math.ethz.ch>		 <><
Seminar fuer Statistik, SOL G1
ETH (Federal Inst. Technology)	8092 Zurich	 SWITZERLAND
phone: x-41-1-632-3408		fax: ...-1086
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch

More information about the R-help mailing list