Revision: 543
http://rpy.svn.sourceforge.net/rpy/?rev=543&view=rev
Author: lgautier
Date: 2008-06-01 06:12:40 -0700 (Sun, 01 Jun 2008)
Log Message:
-----------
- texinfo removed
- more documentation
Modified Paths:
--------------
branches/rpy_nextgen/doc/source/conf.py
branches/rpy_nextgen/doc/source/overview.rst
branches/rpy_nextgen/doc/source/rinterface.rst
branches/rpy_nextgen/doc/source/robjects.rst
branches/rpy_nextgen/doc/source/rpy_classic.rst
Removed Paths:
-------------
branches/rpy_nextgen/doc/rpy.texi
Deleted: branches/rpy_nextgen/doc/rpy.texi
===================================================================
--- branches/rpy_nextgen/doc/rpy.texi 2008-06-01 12:04:10 UTC (rev 542)
+++ branches/rpy_nextgen/doc/rpy.texi 2008-06-01 13:12:40 UTC (rev 543)
@@ -1,639 +0,0 @@
-\input texinfo @c -*-texinfo-*-
-
[EMAIL PROTECTED] %**start of header
[EMAIL PROTECTED] rpy.info
[EMAIL PROTECTED] @RP2{} Reference Manual
[EMAIL PROTECTED] %**end of header
[EMAIL PROTECTED] Programming
[EMAIL PROTECTED]
-* RPy v2: (rpy2). RPy2, Python extension module for R.
[EMAIL PROTECTED] direntry
-
[EMAIL PROTECTED] VERSIONno 2.0.0-dev
-
[EMAIL PROTECTED] Python
-Python
[EMAIL PROTECTED] macro
-
[EMAIL PROTECTED] RPy
-RPy
[EMAIL PROTECTED] macro
[EMAIL PROTECTED] RPy2
-RPy2
[EMAIL PROTECTED] macro
-
[EMAIL PROTECTED] R
-R
[EMAIL PROTECTED] macro
-
[EMAIL PROTECTED] C
-C
[EMAIL PROTECTED] macro
-
[EMAIL PROTECTED]
-This file documents @RPy2{} @value{VERSIONno}
-
-Copyright @copyright{} 2008 L.@: Gautier@
-
-Permission is granted to make and distribute verbatim
-copies of this manual provided the copyright notice and
-this permission notice are preserved on all copies.
-
[EMAIL PROTECTED]
-Permission is granted to process this file through TeX
-and print the results, provided the printed document
-carries a copying permission notice identical to this
-one except for the removal of this paragraph (this
-paragraph not being relevant to the printed manual).
[EMAIL PROTECTED] ignore
-
-Permission is granted to copy and distribute modified
-versions of this manual under the conditions for
-verbatim copying, provided also that the sections
-entitled ``Copying'' and ``GNU General Public License''
-are included exactly as in the original, and provided
-that the entire resulting derived work is distributed
-under the terms of a permission notice identical to this
-one.
-
-Permission is granted to copy and distribute
-translations of this manual into another language,
-under the above conditions for modified versions,
-except that this permission notice may be stated in a
-translation approved by the Free Software Foundation.
[EMAIL PROTECTED] ifinfo
-
[EMAIL PROTECTED]
[EMAIL PROTECTED] @RPy2{} Reference Manual
[EMAIL PROTECTED] (version @version{})
[EMAIL PROTECTED] Laurent Gautier
[EMAIL PROTECTED]
[EMAIL PROTECTED] 0pt plus 1filll
-Copyright @copyright{} 2008
-
-Permission is granted to make and distribute verbatim copies of this
-manual provided the copyright notice and this permission notice are
-preserved on all copies.
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided also that
-the sections entitled ``Copying'' and ``GNU General Public License''
-are included exactly as in the original, and provided that the entire
-resulting derived work is distributed under the terms of a permission
-notice identical to this one.
-
-Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions, except that this permission notice may be stated in a
-translation approved by the Free Software Foundation.
[EMAIL PROTECTED] titlepage
-
[EMAIL PROTECTED]
[EMAIL PROTECTED] Top, Overview, (dir), (dir)
[EMAIL PROTECTED] @RPy{} Reference Manual (version @version{})
-
-This is the reference manual for @RPy{} version @version{}, a @Python{}
-extension module for using the @R{} programming language.
[EMAIL PROTECTED] ifnottex
-
[EMAIL PROTECTED]
-* Preface::
-* Overview::
-* robjects::
-* rinterface::
-* Acknowledgements::
[EMAIL PROTECTED] menu
-
-
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED] iftex
-
[EMAIL PROTECTED] Preface, Overview, Top, Top
[EMAIL PROTECTED] Preface
-
-This presentation describes @RPy2{}, a close-to-complete rewrite of
-the @RPy{} package.
-
-It is developped for R-2.7 (and is not expected to work
-with a previous version), together with @Python{} 2.5. Compatibility
-with @Python{} 2.4 is expected but not tested when writing
-those lines.
-
[EMAIL PROTECTED] @asis
[EMAIL PROTECTED] Walter Moreira, and Gregory Warnes
-For the original @RPy{} and its maintainance through the years.
-I realized through my work that it was then truly uncharted territories,
-and that you got there first.
[EMAIL PROTECTED] Alexander Belopolsky.
-The contributed code of Alexander Belopolsky, who contributed
-a first rewrite to @RPy{} is acknowledged. I have found great
-inspiration in reading that code.
[EMAIL PROTECTED] table
-
[EMAIL PROTECTED] Overview, , Preface, Top
[EMAIL PROTECTED] Overview
-
-
[EMAIL PROTECTED]://www.python.org, @Python{}} is a popular
-all-purpose scripting language, while @uref{http://www.r-project.org, @R{}}
-is a scripting language mostly popular for data analysis, statistics, and
-graphics.
-
-
-The @RPy{} project is an effort to have access to @R{} from within @Python{},
-
-The @RPy{} code is initially inspired in RSPython, which is part of
-the @uref{http://www.omegahat.org/RSPython, Omegahat project}.
-
[EMAIL PROTECTED] is inspired by @RPy{} and A. Belopolskys's contributions to
@RPy.
-Backward compatibility with @RPy{} is somewhat limited, but rinterface
-is providing the basic blocks to re-implement @RPy{} if needed.
-
-FIXME: write a section about what changed
-
-
-
-The package is made of several elements:
[EMAIL PROTECTED] @code
[EMAIL PROTECTED] robjects
-Higher-level interface, when ease-of-use matters most
-(@xref{robjects})
-
[EMAIL PROTECTED] rinterface
-Low-level interface to R, when speed and flexibility
-matter most (@xref{rinterface}). Here the programmer gets close
-to @R{}'s C API, and can use R's function faster than within an R session.
-
[EMAIL PROTECTED] table
-
[EMAIL PROTECTED] robjects
[EMAIL PROTECTED] robjects
-
[EMAIL PROTECTED] Overview
-This module is intended for casual and general use.
-Its aim is to abstracts some of the details and provide an
-intuitive interface to R.
-
[EMAIL PROTECTED]
->>> import rpy2.robjects as robjects
[EMAIL PROTECTED] example
-
[EMAIL PROTECTED] is written on the top of @code{rinterface}, and one
-not satisfied with it could easily build one's own flavor of a
[EMAIL PROTECTED]@R{} interface by modifying it.
-
-
[EMAIL PROTECTED] Classes
[EMAIL PROTECTED] @code
[EMAIL PROTECTED] Robject
-Parent class for @R{} objects.
-
[EMAIL PROTECTED] Rvector
-An @R{} vector
-
[EMAIL PROTECTED] Renvironment
-An @R{} environment.
-
[EMAIL PROTECTED] Rfunction
-An @R{} function.
[EMAIL PROTECTED] table
-
[EMAIL PROTECTED] R
-
-This class is currently a singleton, with
-its one representation instanciated when the
-module is loaded:
-
[EMAIL PROTECTED]
->>> robjects.r
->>> print(robjects.r)
[EMAIL PROTECTED] example
-
-The instance can be seen as a window to an
-embedded @R{} process.
-Readers familiar with the ctypes module for @Python
-
[EMAIL PROTECTED] vectors:
[EMAIL PROTECTED]
->>> pi = robjects.r.pi
->>> letters = robjects.r.letters
[EMAIL PROTECTED] example
-
[EMAIL PROTECTED] functions:
-
[EMAIL PROTECTED]
->>> plot = robjects.r.plot
->>> dir = robjects.r.dir
[EMAIL PROTECTED] example
-
-The evaluation of @R{} code in a string can also be performed
-FIXME: (not yet implemented/tested)
-
[EMAIL PROTECTED] Robject
-
-
[EMAIL PROTECTED] Rvector
-
-Outside functions, and environemnts, most of the objects
-an @R{} user is interacting with are vector-like.
-For example, this means that any scalar is in fact a vector
-of length one.
-
-The class @code{Rvector} has a constructor:
[EMAIL PROTECTED]
->>> x = robjects.Rvector(3)
[EMAIL PROTECTED] example
-
-Operations on vectors:
[EMAIL PROTECTED] @code
[EMAIL PROTECTED] +
-Add
[EMAIL PROTECTED] -
-Subtract
[EMAIL PROTECTED] *
-Multiply
[EMAIL PROTECTED] /
-Divide
[EMAIL PROTECTED] table
-
-FIXME:
-Indexing
-
-This class is using the class @code{rinterface.SexpVector}
-(@xref{SexpVector}).
-
[EMAIL PROTECTED] Numpy
-
-Vectors can also be readily converted to Numpy arrays:
[EMAIL PROTECTED]
->>> import numpy
->>> ltr = robjects.r.letters
->>> ltr_np = numpy.array(ltr)
[EMAIL PROTECTED] example
-
-
[EMAIL PROTECTED] Renvironment
-
[EMAIL PROTECTED] environments can be described to the @Python user as
-an hybrid of a dictionary and a scope.
-
-The first of all environments is called the Global Environment,
-that can also be referred to as the R workspace (@xref{globalEnv}).
[EMAIL PROTECTED]
->>> globalEnv = robjects.globalEnv
[EMAIL PROTECTED] example
-
-An @R{} environment in @RPy2{} can be seen as a kind of @Python{}
-dictionnary.
-
-Assigning a value to a symbol in an environment has been
-made as simple as assign a value to a key in a @Python{}
-dictionary:
[EMAIL PROTECTED]
->>> robjects.r.ls(globalEnv)
->>> globalEnv["a"] = 123
->>> robjects.r.ls(globalEnv)
[EMAIL PROTECTED] example
-
-Care must be taken when assigning objects into an environment
-such as the Global Environment, as it can hide other objects
-with an identical name.
-For example
[EMAIL PROTECTED]
->>> globalEnv["pi"] = 123
->>> robjects.r.pi
-123L
[EMAIL PROTECTED] example
-
[EMAIL PROTECTED]
->>> robjects.r.rm("pi")
->>> robjects.r.pi
-3.1415926535897931
[EMAIL PROTECTED] example
-
-This class is using the class @code{rinterface.SexpEnvironment}
-(@xref{SexpEnvironment}).
-
-An environment is also iter-able, returning all the symbols
-(keys) it contains:
-
[EMAIL PROTECTED]
->>> env = robjects.r.baseenv()
->>> len([x for x in env])
[EMAIL PROTECTED] example
-
-
[EMAIL PROTECTED] Rfunction
-
[EMAIL PROTECTED]
->>> plot = robjects.r.plot
->>> rnorm = robjects.r.rnorm
->>> plot(rnorm(100), ylab="random")
[EMAIL PROTECTED] example
-
-This class is using the class @code{rinterface.SexpClosure}
-(@xref{SexpClosure}).
-
-
[EMAIL PROTECTED] Mapping
-
-The mapping between low-level objects is performed by the
-functions XXX and XXX.
-
-A developper can easily add his own mapping XXX.
-
[EMAIL PROTECTED] Examples
-
[EMAIL PROTECTED]
->>> import array
-
->>> r = robjects.r
-
->>> x = array.array('i', range(10))
->>> y = r.rnorm(10)
-
->>> r.X11()
-
->>> r.par(mfrow=array.array('i', [2,2]))
->>> r.plot(x, y, ylab="foo/bar", col="red")
-
->>> kwargs = {'ylab':"foo/bar", 'type':"b", 'col':"blue", 'log':"x"}
->>> r.plot(x, y, **kwargs)
-
->>> m = r.matrix(r.rnorm(100), ncol=5)
->>> pca = r.princomp(m)
->>> r.plot(pca, main="Eigen values")
->>> r.biplot(pca, main="biplot")
-
->>> if not r.require("GO")[0]:
-... raise(Exception("Bioconductor Package GO missing"))
-...
-
->>> goItem = r.GOTERM["GO:0000001"]
[EMAIL PROTECTED] example
-
[EMAIL PROTECTED] rinterface
[EMAIL PROTECTED] rinterface
-
[EMAIL PROTECTED] Overview
-A lower-level interface is provided for cases where
-the use-cases addressed by @code{robjects} are not covered,
-and for the cases where the layer in @code{robjects}
-has an excessive cost on the performances.
-
[EMAIL PROTECTED]
->>> import rpy2.rinterface as rinterface
[EMAIL PROTECTED] example
-
[EMAIL PROTECTED] initEmbeddedR
[EMAIL PROTECTED] initEmbeddedR
-
-One has to initialize R before much can be done.
-The function @code{initEmbeddedR} lets one initialize
-the embedded R:
[EMAIL PROTECTED]
->>> rinterface.initEmbeddedR()
[EMAIL PROTECTED] example
-
-Initialization should only be performed once and in the case
-of a second call to initEmbeddedR, to avoid unpredictable results
-when using the embedded R, an exception is be fired.
-
-Parameters for the initialization are in the module varible
[EMAIL PROTECTED]
-
[EMAIL PROTECTED] Rspace
[EMAIL PROTECTED] @R{} space and @Python{} space
-
-When using the @RPy2{} package, two realms are co-existing: @R{} and @Python{}.
-
-The @code{Sexp_Type} objects can be considered as @Python{} shells pointing
-to data stored and administered in the @R{} space.
-
-
[EMAIL PROTECTED] globalEnv
[EMAIL PROTECTED] globalEnv
-
-The global environment can be seen as the topmost environment,
-and is in fact a list, that is a sequence, of environments.
-
-When an @R{} library (package in @R{}'s terminology) is loaded,
-is it added to the existing sequence of environments. Unless
-specified, it is inserted in second position. The first position
-always remains attributed to the global environment
-(FIXME: there is a bit of circulariry in this definition - check
-how to present it a clear(er) way).
-The library is said to be attached to the current search path.
-
[EMAIL PROTECTED] Sexp
[EMAIL PROTECTED] Sexp
-
-Methods:
[EMAIL PROTECTED] @code
[EMAIL PROTECTED] typeof()
-Type of the object
[EMAIL PROTECTED] do_slot([name])
-Access attribute @code{name} for the object
[EMAIL PROTECTED] table
-
[EMAIL PROTECTED] typeof
[EMAIL PROTECTED] typeof
-
-The internal @R{} type in which an object is stored can be
-accessed with the function @code{typeof}.
-
[EMAIL PROTECTED]
->>> letters.typeof()
[EMAIL PROTECTED] example
-
-FIXME: talk about the all the types.
-
-
[EMAIL PROTECTED] do_slot
[EMAIL PROTECTED] do_slot
-
[EMAIL PROTECTED] objects can be geiven attributes. In @R{} the function
[EMAIL PROTECTED] lets one access attribute, while called @code{do_slot}
-in the @C{} interface to @R{}.
-
[EMAIL PROTECTED]
->>> matrix = rinterface.globalEnv.get("matrix")
->>> letters = rinterface.globalEnv.get("letters")
->>> ncol = rinterface.SexpVector([2, ], rinterface.INTSXP)
->>> m = matrix(letters, ncol = ncol)
->>> [x for x in m.do_slot("dim")]
-[13, 2]
[EMAIL PROTECTED] example
-
-
-
[EMAIL PROTECTED] SexpVector
[EMAIL PROTECTED] SexpVector
-
[EMAIL PROTECTED] Overview
-In @R{} all scalars are in fact vectors.
-Anything like a one-value variable is a vector of
-length 1.
-
-To use again the constant @code{pi}:
[EMAIL PROTECTED]
->>> pi = rinterface.globalEnv.get("pi")
->>> len(pi)
-1
->>> pi
-<rinterface.SexpVector - Python:0x2b20325d2660 / R:0x16d5248>
->>> pi[0]
-3.1415926535897931
[EMAIL PROTECTED] example
-
-Important note: The @code{__getitem__} operator @code{[}
-is returning a @Python{} scalar. Because of that casting
-an @code{SexpVector} into a list is only a matter of calling
-the constructor @code{list}.
-
-The letters of the (western) alphabet are:
[EMAIL PROTECTED]
->>> letters = rinterface.globalEnv.get("letters")
->>> len(letters)
-26
->>> LETTERS = rinterface.globalEnv.get("LETTERS")
[EMAIL PROTECTED] example
-
[EMAIL PROTECTED] Names
-In @R{}, vectors can be named, that is each value in the vector
-can be given a name (that is be associated a string).
-The names are added to the other as an attribute (conveniently
-called names), and can be accessed as such:
[EMAIL PROTECTED]
->>> options = rinterface.globalEnv.get("options")()
->>> option_names = options.do_slot("names")
->>> [x for x in options_names]
[EMAIL PROTECTED] example
-(to know more about @code{do_slot}, @xref{do_slot}).
-
[EMAIL PROTECTED] Numeric, numarray, numpy (and future possible names)
-
-The SexpVector objects are made to behave like arrays as defined
-in the @Python{} packages Numeric, numarray, and numpy.
-
-The functions @code{array} and @code{asarray} is all that is needed:
[EMAIL PROTECTED]
->>> import Numeric
->>> rx = rinterface.SexpVector([1,2,3,4], rinterface.INTSXP)
->>> nx = Numeric.array(rx)
->>> nx_nc = Numeric.asarray(rx)
[EMAIL PROTECTED] example
-
-Important note: when using @code{asarray}, the data are not copied.
[EMAIL PROTECTED]
->>> nx_nc[2] = 42
->>> rx[2]
-42
[EMAIL PROTECTED] example
-
-
[EMAIL PROTECTED] SexpEnvironment
[EMAIL PROTECTED] SexpEnvironment
-
[EMAIL PROTECTED] get
-Whenever a search for a symbol is performed, the whole
-search path is considered: the environments in the list
-are inspected in sequence and the value for the first symbol found
-matching is returned.
-
[EMAIL PROTECTED]
->>> rinterface.globalEnv.get("pi")
[EMAIL PROTECTED] example
-
-The constant pi is defined in the package base, that
-is by default in the search path.
-
-
[EMAIL PROTECTED] __getitem__ / __setitem__
-
-The @code{[} operator will only look for a symbol in the environment
-(FIXME: first in the list then ?),
-without looking into other elements in the list.
-
-The following will return an expection @code{LookupError}:
[EMAIL PROTECTED]
->>> rinterface.globalEnv["pi"]
[EMAIL PROTECTED] example
-The constant @code{pi} is defined in @R{}'s @code{base} package,
-and therefore cannot be found in the Global Environment.
-
-The assignment of a value to a symbol in an environment is as
-simple as assigning a value to a key in a @Python{} dictionary:
[EMAIL PROTECTED]
->>> x = rinterface.Sexp_Vector([123, ], rinterface.INTSXP)
->>> rinterface.globalEnv["x"] = x
[EMAIL PROTECTED] example
-note: a copy of the @R{} object is made in the @R{} space.
-
[EMAIL PROTECTED] __iter__
-
-The object is made iter-able.
-
-For example, we take the base name space (that is the environment
-that contains @R{}'s base objects:
[EMAIL PROTECTED]
->>> base = rinterface.baseNameSpace
->>> basetypes = [x.typeof() for x in base]
[EMAIL PROTECTED] example
-
-Note that in the current implementation the content of the environment
-is evaluated only once, when the iterator is created, and that adding
-or removing elements to the environment after will not have any effect.
-
[EMAIL PROTECTED] SexpClosure
[EMAIL PROTECTED] SexpClosure
-
[EMAIL PROTECTED] A function with a context
-In @R{} terminology, a closure is a function (with its enclosing
-environment). That enclosing environment can be thought of as
-a context to the function.
-
[EMAIL PROTECTED]
->>> sum = rinterface.globalEnv.get("sum")
->>> x = rinterface.SexpVector([1,2,3], rinterface.INTSXP)
->>> s = sum(x)
->>> s[0]
-6
[EMAIL PROTECTED] example
-
[EMAIL PROTECTED] closureEnv
-
-In the example below, we inspect the environment for the
-function @code{plot}, that is the namespace for the
-package @code{graphics}.
[EMAIL PROTECTED]
->>> plot = rinterface.globalEnv.get("plot")
->>> ls = rinterface.globalEnv.get("ls")
->>> envplot_list = ls(plot.closureEnv())
->>> [x for x in envplot_ls]
[EMAIL PROTECTED] example
-
-
[EMAIL PROTECTED] Acknowledgements, , , Top
[EMAIL PROTECTED] Acknowledgements
-
-This is an attempt at rewritting and extending
-the @RPy{} project. Acknowledgements go to:
-(FIXME: names are probably forgotten)
-
[EMAIL PROTECTED] @asis
-
[EMAIL PROTECTED] Walter Moreira
-for the orignal implementation of @RPy{}.
-
[EMAIL PROTECTED] Gregory Warnes
-for maintaining @RPy{} across the years, bringing it
-a version 1.0, and fixing it to accomodate changes in R.
-
[EMAIL PROTECTED] Alexander Belopolsky
-for his very nice contributed code to RPy (that code was a cornerstone
-in rewriting RPy).
[EMAIL PROTECTED] table
-
[EMAIL PROTECTED]
Modified: branches/rpy_nextgen/doc/source/conf.py
===================================================================
--- branches/rpy_nextgen/doc/source/conf.py 2008-06-01 12:04:10 UTC (rev
542)
+++ branches/rpy_nextgen/doc/source/conf.py 2008-06-01 13:12:40 UTC (rev
543)
@@ -23,7 +23,7 @@
# Add any Sphinx extension module names here, as strings. They can be
extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-#extensions = []
+extensions = ['doctest', ]
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
Modified: branches/rpy_nextgen/doc/source/overview.rst
===================================================================
--- branches/rpy_nextgen/doc/source/overview.rst 2008-06-01 12:04:10 UTC
(rev 542)
+++ branches/rpy_nextgen/doc/source/overview.rst 2008-06-01 13:12:40 UTC
(rev 543)
@@ -1,41 +1,60 @@
Overview
========
+Background
+----------
+
`Python`_ is a popular
-all-purpose scripting language, while `R`_
+all-purpose scripting language, while `R`_ (an open source implementation
+of the S/Splus language)
is a scripting language mostly popular for data analysis, statistics, and
-graphics.
+graphics. If you are reading this, there are good chances that you are
+at least familiar with one of the two.
.. _Python: http://www.python.org
.. _R: http://www.r-project.org
-The RPy project is an effort to have access to R from within Python,
+Having an interface between both languages, and benefit from the respective
+libraries of one language while working in the other language, appeared
+desirable and an early option to achieve it was the RSPython project,
+itself part of the `Omegahat project`_.
-The RPy code was initially inspired in RSPython, which is part of
-the `Omegahat project`_.
+A bit later, the RPy project appeared and focused on providing simple and
+robust access to R from within Python, with the initial Unix-only releases
+quickly followed by Microsoft and MacOS compatible versions.
+This project is referred to as RPy-1.x in the
+rest of this document.
.. _Omegahat project: http://www.omegahat.org/RSPython
-RPy2 is inspired by RPy, as well as A. Belopolskys's contributions to RPy.
-A compatibility layer with RPy is provided.
+The present documentation covers RPy2, an evolution of RPy-1.x.
+Naturally RPy2 is inspired by RPy, but also by A. Belopolskys's contributions
+that were waiting to be included into RPy.
-FIXME: write a section about what changed
+Contents
+--------
+The package is made of several sub-packages or modules:
+:mod:`rpy2.rpy_classic`
+^^^^^^^^^^^^^^^^^^^^^^^
-The package is made of several elements:
+Higher-level interface similar to the one in RPy-1.x.
+This is provided for compatibility reasons, and facilitate the migration
+to RPy2.
-:mod:`rpy_classic`
- Higher-level interface similar to the one in RPy-1.x
+:mod:`rpy2.robjects`
+^^^^^^^^^^^^^^^^^^^^
-:mod:`robjects`
- Higher-level interface, when ease-of-use matters most
+Higher-level interface, when ease-of-use matters most.
-:mod:`rinterface`
- Low-level interface to R, when speed and flexibility
- matter most. Here the programmer gets close to R's C
- API, and can use R's function faster than within an R session.
+:mod:`rpy2.rinterface`
+^^^^^^^^^^^^^^^^^^^^^^
+Low-level interface to R, when speed and flexibility
+matter most. Here the programmer gets close(r) to R's C
+API.
+
Modified: branches/rpy_nextgen/doc/source/rinterface.rst
===================================================================
--- branches/rpy_nextgen/doc/source/rinterface.rst 2008-06-01 12:04:10 UTC
(rev 542)
+++ branches/rpy_nextgen/doc/source/rinterface.rst 2008-06-01 13:12:40 UTC
(rev 543)
@@ -1,10 +1,14 @@
.. index::
- module: rinterface
+ module: rpy2.rinterface
**********
rinterface
**********
+.. module:: rpy2.rinterface
+ :synopsis: Low-level interface with R
+
+
Overview
========
@@ -19,6 +23,7 @@
.. index::
single: initEmbeddedR
+ single: initialize
:func:`initEmbeddedR`
---------------------
@@ -46,6 +51,7 @@
.. index::
single: globalEnv
+ single: SexpEnvironment; globalEnv
globalEnv
---------
@@ -63,6 +69,7 @@
.. index::
single: baseNamespaceEnv
+ single: SexpEnvironment; baseNamespaceEnv
baseNamespaceEnv
----------------
@@ -90,6 +97,9 @@
do_slot([name])
Access attribute *name* for the object
+.. index::
+ single: Sexp; typeof
+
:meth:`typeof`
--------------
@@ -100,6 +110,8 @@
FIXME: talk about the all the types.
+.. index::
+ single: Sexp; do_slot
:meth:`do_slot`
---------------
@@ -141,10 +153,11 @@
3.1415926535897931
>>>
-Important note: The *__getitem__* operator *[*
-is returning a Python scalar. Because of that casting
-an *SexpVector* into a list is only a matter of calling
-the constructor *list*.
+.. note::
+ The *__getitem__* operator *[*
+ is returning a Python scalar. Because of that casting
+ an *SexpVector* into a list is only a matter of calling
+ the constructor *list*.
The letters of the (western) alphabet are:
@@ -284,41 +297,59 @@
.. index::
single: R_LEN_T_MAX
+ single: R_HOME
+ single: TRUE
+ single: FALSE
R_HOME
R HOME
-R_LEN_T_MAX
+:const:`R_LEN_T_MAX`
largest usable integer for indexing R vectors
-TRUE/FALSE
+:const:`TRUE`/:const:`FALSE`
R's TRUE and FALSE
-NA_INTEGER
- NA value for integers
+:const:`NA_INTEGER`
+ Missing value for integers
-NA_LOGICAL
- NA value for booleans
+:const:`NA_LOGICAL`
+ Missing value for booleans
-NA_REAL
- NA value for numerical values (float / double)
+:const:`NA_REAL`
+ Missing value for numerical values (float / double)
-INTSXP
+.. index::
+ single: ENVSXP
+ single: type; ENVSXP
+ single: INTSXP
+ single: type; INTSXP
+ single: LGLSXP
+ single: type; LGLSXP
+ single: STRSXP
+ single: type; STRSXP
+ single: REALSXP
+ single: type; REALSXP
+
+R types
+-------
+
+:const:`INTSXP`
Integer
-REALSXP
+:const:`REALSXP`
Numerical value (float / double)
-LGLSXP
+:const:`LGLSXP`
Boolean (logical in the R terminology)
-STRSXP
+:const:`STRSXP`
String
-ENVSXP
+:const:`ENVSXP`
Environment
-CPLXSXP
+:const:`CPLXSXP`
Complex
Modified: branches/rpy_nextgen/doc/source/robjects.rst
===================================================================
--- branches/rpy_nextgen/doc/source/robjects.rst 2008-06-01 12:04:10 UTC
(rev 542)
+++ branches/rpy_nextgen/doc/source/robjects.rst 2008-06-01 13:12:40 UTC
(rev 543)
@@ -1,3 +1,7 @@
+.. index::
+ module: rpy2.robjects
+
+
*************
rpy2.robjects
*************
@@ -2,2 +6,6 @@
+.. module:: rpy2.robjects
+ :synopsis: High-level interface with R
+
+
Overview
@@ -105,8 +113,6 @@
ltr_np = numpy.array(ltr)
-
-
:class:`Renvironment`
---------------------
@@ -196,6 +202,8 @@
Principal component analysis
----------------------------
+The R code is
+
.. code-block:: r
m <- matrix(rnorm(100), ncol=5)
@@ -203,6 +211,8 @@
plot(pca, main="Eigen values")
biplot(pca, main="biplot")
+The :mod:`rpy2.robjects` code is
+
.. code-block:: python
m = r.matrix(r.rnorm(100), ncol=5)
Modified: branches/rpy_nextgen/doc/source/rpy_classic.rst
===================================================================
--- branches/rpy_nextgen/doc/source/rpy_classic.rst 2008-06-01 12:04:10 UTC
(rev 542)
+++ branches/rpy_nextgen/doc/source/rpy_classic.rst 2008-06-01 13:12:40 UTC
(rev 543)
@@ -1,3 +1,7 @@
+.. index::
+ module: rpy2.rpy_classic
+
+
***********
rpy_classic
***********
@@ -2,17 +6,32 @@
-The module aims at providing an API similar to
-the one in RPy-1.x.
+.. module:: rpy2.rpy_classic
+ :synopsis: Provide compatibility with rpy
-Loading the module can be done as:
+This module provides an API similar to the one
+in RPy-1.x (*rpy*).
+To match examples and documentation for *rpy*,
+we load the module as:
+
>>> from rpy2.rpy_classic import *
+.. index::
+ single: conversion
-The conversion system is still around:
+Conversion
+----------
+Although the proposed high-level interface in :mod:`rpy2.robjects`
+does not need explicit conversion settings, the conversion system
+existing in *rpy* is provided, and the default
+mode can be set with :func:`set_default_mode`:
+
>>> set_default_mode(NO_CONVERSION)
>>> set_default_mode(BASIC_CONVERSION)
-The ``r`` instance behaves like before:
+R instance
+----------
+The ``r`` instance of class :class:`R` behaves like before:
+
>>> r.help
@@ -51,14 +70,18 @@
True
>>>
+If an object is not a R function, a :class:`RuntimeError`
+is thrown by R whenever called:
+
+>>> r.pi()
+
+The function are called like regular Python functions:
+
>>> r.seq(1, 3)
>>> r.seq(1, 3, by=0.5)
>>> r['options'](show_coef_Pvalues=0)
-Whenever object is not a function, a runtime error
-is thrown by R.
->>> r.pi()
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
rpy-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rpy-list