Great Laurent,
It seems that
list(model.r['m'][0].r['fitted'][0]())
sucessfully gives me the list of fitted values!
thanks!
Manuel
On Aug 5, 2009, at 2:59 PM, Laurent Gautier wrote:
Manuel A. Rivas wrote:
hello laurent,
yep. it seems to work fine when fitted would be the first level.
However,
in R
it would be something of this nature when the data i want to
extract is two levels down:
model$m$fitted()
i'd figure two level down it would be something like model.r['m']
['fitted'][0]
however, that doesnt seem to work?
The ".r[" bit is (quite less accurately than ".rx(" in 2.1-dev)
mirroring R's '[" operator.
".r[<foo>][0]" corresponds to R's "[[" (and "$" when one element in
<foo>).
model.r['m'] returns a list (of length 1)
model.r['m'][0] returns the one item in the list above.
model.r['m'][0]['fitted'] returns a list of length 1... and so on.
L.
thanks again,
manuel
On Aug 5, 2009, at 2:42 PM, Laurent Gautier wrote:
Manuel A. Rivas wrote:
Thanks Laurent, I've decided to change to rpy2 instead and use
that framework: A few questions I have : I am able to create a
model using nls or lm say model = robjects.r.nls("y~a*x^3 + b*x^2
+ c*x + d",start = robjects.r.list(a = 0, b = 0, c = 0, d = 0))
it succesfully creates the model . Now, in rpy I would extract
the $coefficients , $fitted from nls
by
pointing to the model as a dictionary
list(r.print_(model['m']['fitted'])()) would return a list of the
fitted points
now in rpy2 i successfully get to point to 'm' by returning
model.r['m'] which returns a vector
however, i am having difficulty getting to $fitted under $m and
printing the results.
with rpy2-2.0.x the robjects high-level interface is a little rough:
model.r['fitted'][0]
(see http://rpy.sourceforge.net/rpy2/doc/html/introduction.html#linear-models
)
with rpy2-2.1.x this is is getting (likely) better:
model.rx2('fitted')
(see
http://rpy.sourceforge.net/rpy2/doc-dev/html/robjects.html#extracting-elements
)
An other delegator ".rxd" ("R extract dollar") should complement
".rx" ("R extract [") and ".rx2" ("[[") in the future.
L.
any ideas would be appreciated. thanks,
manuel On Aug 5, 2009, at 12:12 PM, Laurent Gautier wrote:
Are you using rpy2-2.1dev ?
If so, there were issues and you will want a (very) fresh update
of the code on the bitbucket repository.
L.
Manuel A. Rivas wrote:
Thanks Laurent,
Were you able to succesfully create the lm ?
I get the following error with NO_CONVERSION:
>>> rpy.r.lm(rpy.r("y ~ x"), data = rpy.r.data_frame(x=my_x,
y=my_y))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/radon00/rivas/lib/python/rpy2/rpy_classic.py", line
265, in __call__
return self.eval(self.parse(text=s))
File "/home/radon00/rivas/lib/python/rpy2/rpy_classic.py", line
199, in __call__
a = a.getSexp()
AttributeError: 'Robj' object has no attribute 'getSexp'
thanks,
manuel
On Aug 5, 2009, at 11:17 AM, Laurent Gautier wrote:
Manuel A. Rivas wrote:
Hello , I am trying to use the r.nls function from rpy2 in
the same fashion as rpy by importing rpy_classic. In R: the
syntax y ~ x would tell the lm function that y depends on x
as its model. In python using rpy I would use rpy's "evaluate
a string" functionality. i.e.
>>> from rpy import r
>>> my_x = [5.05, 6.75, 3.21, 2.66]
>>> my_y = [1.65, 26.5, -5.93, 7.96]
>>> print r.lm(r("y ~ x"), data = r.data_frame(x=my_x,
y=my_y))['coefficients']
as described in the man pages: However, if I do the same with
rpy2
>>> from rpy2.rpy_classic import r
>>> my_x = [5.05, 6.75, 3.21, 2.66]
>>> my_y = [1.65, 26.5, -5.93, 7.96]
>>> r.lm(r("y ~ x"), data = r.data_frame(x=my_x, y=my_y))
I get the following error: Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/radon00/rivas/lib/python/rpy2/rpy_classic.py",
line 265, in __call__
return self.eval(self.parse(text=s))
File "/home/radon00/rivas/lib/python/rpy2/rpy_classic.py",
line 215, in __call__
res = rpy2py(res)
File "/home/radon00/rivas/lib/python/rpy2/rpy_classic.py",
line 174, in rpy2py
res = rpy2py_basic(obj)
File "/home/radon00/rivas/lib/python/rpy2/rpy_classic.py",
line 160, in rpy2py_basic
raise ValueError("Invalid type for 'obj'.")
ValueError: Invalid type for 'obj'.
any ideas how to do the same operation in rpy2 with
rpy_classic?
Try adding this to the beginning:
import rpy2.rpy_classic as rpy
rpy.set_default_mode(rpy.NO_CONVERSION)
(rpy_classic is way behind the rest of rpy2 because of limited
time on my end, and seemingly limited interest/contributions
from users in having it improved to a full compatibility).
L.
thanks,
Manuel Rivas
------------------------------------------------------------------------
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal
Reports 2008 30-Day trial. Simplify your report design,
integration and deployment - and focus on what you do best,
core application coding. Discover what's new with Crystal
Reports now. http://p.sf.net/sfu/bobj-july
------------------------------------------------------------------------
_______________________________________________
rpy-list mailing list
rpy-list@lists.sourceforge.net <mailto:rpy-list@lists.sourceforge.net
>
https://lists.sourceforge.net/lists/listinfo/rpy-list
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
rpy-list mailing list
rpy-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rpy-list