On Fri, 2008-10-17 at 09:53 +0100, Peter wrote:
> Laurent Gautier wrote:
> >
> > As you noticed, there was something missing in the example I just gave.
> > It should have been:
> >
> > import array
> > import rpy2.robjects as ro
> >
> > d = dict(x = array.array('i', [1,2]), y = array.array('i', [2,3]))
> > dataf = ro.r['data.frame'](**d)
>
> Hi Laurent,
>
> You mentioned using rpy2.rlike.container.TaggedList and
> rpy2.robjects.RDataFrame (new in rpy2) as a "safer" approach.
It's safer in the sense that Python and R code for the same thing will
be closer, somehow.
A Python dictionary does not keep the order in which elements were
added, and in R lists can have several elements with the same name.
Example of R code:
> dataf <- data.frame(x=1:2, y=3:4, x=5:6)
> dataf
x y x.1
1 1 3 5
2 2 4 6
> dataf <- data.frame(x=1:2, y=3:4, x=5:6, check.names=FALSE)
> dataf
x y x
1 1 3 5
2 2 4 6
Currently, in rpy2, you'll get the first behavior (and an error if
trying to set the parameter check.names).
There is a relatively small number of use cases not yet taken care of
within rpy2.robjects (like if the R constructor 'data.frame' is a
generic function).
> Could
> you show us how this example would work that way?
Laurent Oget worked it out.
import array
import rpy2.robjects as ro
import rpy2.rlike.container as rlc
x = ro.RVector(array.array('i', [1,2]))
y = ro.RVector(array.array('i', [3,4]))
tl = rlc.TaggedList([x, y], tags = ('x', 'y'))
dataf = ro.RDataFrame(tl)
print(dataf)
x = ro.RVector(array.array('i', [5,6]))
tl.append(x, tag='x')
dataf = ro.RDataFrame(tl)
print(dataf)
> Given how important
> dataframes are in R, this discussion could become the basis for a
> section of the rpy2 manual.
>
> Peter
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> rpy-list mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/rpy-list
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
rpy-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rpy-list