[R] rpy2 and user defined functions from R

Collin Lynch collinl at cs.pitt.edu
Wed Oct 30 20:40:46 CET 2013


I don't believe that rpy2 will load a saved workspace.  When I have worked
with this I always load my functions by sourcing an r file separately:

R.r['source'](MyFuncs.r)


	Best,
	Collin.

On Wed, 30 Oct 2013, Erin Hodgess wrote:

> Here we go:
>
> > buzz
> function(x) {
> y <- x + pi
> return(y)
> }
> > q()
> Save workspace image? [y/n/c]: python
> Save workspace image? [y/n/c]: y
> root at erinminfo [/home/erinminf/public_html]# python
> Python 2.7.5 (default, Sep 11 2013, 02:14:06)
> [GCC 4.1.2 20080704 (Red Hat 4.1.2-54)] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import rpy2.robjects as R
> >>> R.r.buzz(3)
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File "/usr/local/lib/python2.7/site-packages/rpy2/robjects/__init__.py",
> line 213, in __getattribute__
>     raise orig_ae
> AttributeError: 'R' object has no attribute 'buzz'
> >>> R.r['buzz'](3)
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File "/usr/local/lib/python2.7/site-packages/rpy2/robjects/__init__.py",
> line 216, in __getitem__
>     res = _globalenv.get(item)
> LookupError: 'buzz' not found
> >>>
> root at erinminfo [/home/erinminf/public_html]#
>
>
> On Wed, Oct 30, 2013 at 10:16 AM, Collin Lynch <collinl at cs.pitt.edu> wrote:
>
> > Erin, one question, can you access the defined functions by key?
> >
> > In lieu of:
> > > x = R.r.buzz(3)
> >
> > Can you do:
> >   x = R.r['buzz'](3)
> >
> >
> > Alternatively if you need only one or two custom functions have you
> > considered just defining them via python as in:
> >
> > PStr = """
> > function(LM) {
> >   S <- summary(LM);
> >   print(S$fstatistic);
> >   F <- S$fstatistic;
> >   P <- pf(F[1], F[2], F[3], lower=FALSE);
> >   return(P);
> > }
> > """
> > r_LMPValFunc = robjects.r(PStr)
> >
> >         Best,
> >         Collin.
> >
> >
> > On Tue, 29 Oct 2013, Erin Hodgess wrote:
> >
> > > Hello again!
> > >
> > > I'm using python with a module rpy2 to call functions from R.
> > >
> > > It works fine on built in R functions like rnorm.
> > >
> > > However, I would like to access user-defined functions as well.  For
> > those
> > > of you who use this, I have:
> > >
> > > import rpy2.robjects as R
> > > R object as no attribute buzz
> > >
> > > (user defined function of buzz)
> > >
> > > This is on a Centos 5 machine with R-3.0.2 and python of 2.7.5.
> > >
> > > Thanks for any help.
> > > Sincerely,
> > > Erin
> > >
> > >
> > >
> > > --
> > > Erin Hodgess
> > > Associate Professor
> > > Department of Computer and Mathematical Sciences
> > > University of Houston - Downtown
> > > mailto: erinm.hodgess at gmail.com
> > >
> > >       [[alternative HTML version deleted]]
> > >
> > > ______________________________________________
> > > R-help at r-project.org mailing list
> > > https://stat.ethz.ch/mailman/listinfo/r-help
> > > PLEASE do read the posting guide
> > http://www.R-project.org/posting-guide.html
> > > and provide commented, minimal, self-contained, reproducible code.
> > >
> >
> >
>
>
> --
> Erin Hodgess
> Associate Professor
> Department of Computer and Mathematical Sciences
> University of Houston - Downtown
> mailto: erinm.hodgess at gmail.com
>



More information about the R-help mailing list