[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