Quantitative Analysis
Parallel Processing
Numerical Analysis
C++ Multithreading
Python for Excel
Python Utilities
Services
Author

I. Python Object Browser.
II. Python to R Communicator.
1. Why not use RPy?
2. Example of R communication.
3. Under the hood of Python to R Communicator.
4. Installation procedure for Python to R Communicator.
5. Types of data acceptable by R Communicator.
III. Manipulation of piecewise polynomial functions.
IV. Building C++ projects.
Downloads. Index. Contents.

Example of R communication.


he following session assumes that the installation procedure (see following sections) was already completed. In particular, R loads pyServer file on startup and python finds the r_com module.

Always start pyServer from R shell before calling into any r_com functionality from Python shell!!! To start pyServer, type the command pyServer.run() into R shell.


Figure

While the pyServer is running it is possible to call into that R shell from Python shell.


Figure

The "do" function executes an R statement in the R shell. The "get" function retrieves contents of an R variable into the Python namespace. The function "set" puts data from Python shell into R shell (an example follows shortly).

Python directive of the form r.anyRFunction(anyArguments) marshals the anyRArguments into R namespace, executes anyRFunction in the R namespace and marshals the result back into the Python namespace. For example, the sequence of commands


Figure
displays the "R Graphics" window:


Figure
The meaning of axis annotations will be clear in the following sections. The recipe for getting rid of it follows immediately.

It is possible to use arguments that are already inside the R namespace. For example, the sequence of commands


Figure

displays the following window:


Figure

The RPy users may be delighted to know that the "R Graphics" window is responsive, the way it would be if called directly from R shell.

There is no blocking of Python shell while the "R Graphics" window is displayed because the "plot" command of the R shell does not block. This is an improvement over matplotlib and pylab.

The command r.stop() releases the R shell (the pyServer.run() directive exits) and prevents further communication until the command "pyServer.run()" is executed again in the R shell. For example,


Figure
At this point the "pyServer.run()" returns in the R shell


Figure
and the R namespace may be explored directly:


Figure
To resume communication execute "pyServer.run()" again:


Figure
and continue manipulating the same R namespace from Python shell:


Figure





Downloads. Index. Contents.


















Copyright 2007