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